问题标签 [idempotent]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
post - 传递 POST 参数 - 没有 URL。他们究竟在哪里?
我正在设计一个简单的网络设备,它可以读取温度和湿度读数,我想将它们发布到远程服务器并将它们添加到 MySQL 数据表中。
我知道由于幂等性问题,GET 是错误的方法。但是,如果您不能只是拼凑一个 URL 并用它调用页面,那么使用 POST 执行此操作的语法或方法是什么?
我在客户端工作在一个相当低的水平 - 一个带有以太网库的微处理器。它有一个 client.open() 接口,然后我可以向打开的客户端连接发送“打印”语句。
有谁知道服务器应该看到什么来接收帖子和一堆参数?
ķ
web-services - 定义幂等性
所以“幂等性”可以定义为:
一个动作,如果执行 N 次,则与只执行一次该动作具有相同的效果。
明白了,够简单的。
我的问题是关于这个定义的微妙之处——一个动作本身是否被认为是幂等的,或者你是否还必须考虑传递给动作的数据?
让我用一个例子来澄清:
假设我有一个更新某些资源的 PUT 方法,我们将调用它f(x)
显然,f(3)
是幂等的,只要我提供 3 作为输入。同样明显的是,f(5)
将改变资源的值(即,它将不再是 3 或以前的任何值)
所以当我们谈论幂等性时,我们是指像(即,f(x)
)这样的动作/函数的泛化,还是指的是动作/函数+传递给它的数据(即,f(3)
)?
c# - IDisposable.Dispose() 实现应该是幂等的吗?
Microsoft.NET 框架提供了IDisposable
需要void Dispose()
方法实现的接口。其目的是启用手动或基于范围的IDisposable
实现可能已分配的昂贵资源的释放。示例包括数据库集合、流和句柄。
我的问题是,该Dispose()
方法的实现是否应该是幂等的——当在同一个实例上多次调用时,该实例只被“处理”一次,并且后续调用不会引发异常。在 Java 中,大多数具有相似行为的对象(我再次想到流和数据库连接作为示例)的close()
操作是幂等的,这恰好是该Dispose()
方法的类似物。
但是,我对 .NET(尤其是 Windows 窗体)的个人经验表明,并非所有实现(作为 .NET 框架本身的一部分)都是幂等的,因此对这些实现的后续调用会抛出ObjectDisposedException
. 这真的让我对如何处理一次性对象的实现感到困惑。该场景是否有一个共同的答案,还是取决于对象的具体上下文及其用法?
java - 在我们称其为“幂等”之前,函数必须遵守哪些规则?
来自另一个线程的帖子说,如果一个函数可以多次调用而不改变结果,则称该函数是幂等的。
然而,使用的术语(如无副作用和返回相同结果)相对模棱两可。考虑这段代码:
我们可以说这F()
是幂等的,因为连续调用F()
返回相同的值吗?
或者它不是幂等的,因为如果在两者之间调用连续调用F()
不会返回相同的值F2()
?
PS:计算机科学中定义的“幂等”,而不是数学。
ruby-on-rails - String#pluralize 是幂等的吗?
也就是说,对于任何 String string
,以下是否成立?
web-services - REST Web 服务的客户端 id 生成策略
假设我想构建一个 REST 服务来制作如下所示的笔记:
由于我希望我的服务是幂等的,所以我使用 PUT 来创建和更新我的笔记,这意味着新笔记的 id 是由客户端设置/生成的。
我曾考虑过使用 GUID/UUID,但它们很长,并且会使记住 URL 变得相当困难。同样从数据库的角度来看,当在大表中用作主键时,从性能的角度来看,这样的长字符串 id 可能会很麻烦。
你知道一个好的 id 生成策略,它生成短 id 并且当然可以避免冲突吗?
ajax - ajax请求是否需要进行重定向后获取?
是否有任何理由将 post-redirect-get (prg) 用于您知道只会通过 ajax 请求发生的请求?
在这种情况下,您可能有一个发送的请求(通过 ajax 或直接),我们假设在后端我们可以区分哪个是哪个。在使用 prg 处理直接请求的情况下,是否有任何理由也使用 prg 处理ajax请求?
还是可以直接回复 ajax 帖子?
sql - SQL 幂等性
我的 SQL 数据库项目中有一个部署后脚本,它注册了应该是数据库一部分的默认值。我希望这个脚本能够在不改变结果的情况下多次运行,所以如果我需要添加一点修改,我可以手动运行它。
我怀疑性能永远不会成为问题,因为这个脚本只会插入角色和权限。那么检查每一行是否存在的最干净的方法是什么,并且只插入那些不存在于表中的行?
jmx - 注册camel的ftp jpa Idempotent存储库时出错
我正在尝试按照此处http://camel.apache.org/file2.html的描述实现 jpa 幂等存储库,但我遇到了 Mbean 导出错误。
在我的 application-context.xml 我有以下部分。
如果我删除上述部分,则服务器(tomcat)启动就好了。有人可以帮我吗?
这是堆栈:
javascript - 如何使 jQuery `bind` 或 `on` 事件处理程序具有幂等性
有没有一种我可以调用$(selector).bind('click', handler)
或$(selector).on('click', handler)
多次调用的方法,以便处理程序只附加一次?
现在,我有多个具有不同成功回调的 AJAX 处理程序,每个处理程序都会在页面上重新呈现一组不同的元素。理想情况下,我想将“重新附加事件”例程重构为单个函数,而不是所有人的例程。
我现在能想到的唯一方法是显式取消绑定,例如:
寻找一种自动执行类似操作的方法。