问题标签 [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.

0 投票
0 回答
63 浏览

post - 传递 POST 参数 - 没有 URL。他们究竟在哪里?

我正在设计一个简单的网络设备,它可以读取温度和湿度读数,我想将它们发布到远程服务器并将它们添加到 MySQL 数据表中。

我知道由于幂等性问题,GET 是错误的方法。但是,如果您不能只是拼凑一个 URL 并用它调用页面,那么使用 POST 执行此操作的语法或方法是什么?

我在客户端工作在一个相当低的水平 - 一个带有以太网库的微处理器。它有一个 client.open() 接口,然后我可以向打开的客户端连接发送“打印”语句。

有谁知道服务器应该看到什么来接收帖子和一堆参数?

ķ

0 投票
4 回答
3763 浏览

web-services - 定义幂等性

所以“幂等性”可以定义为:

一个动作,如果执行 N 次,则与只执行一次该动作具有相同的效果。

明白了,够简单的。

我的问题是关于这个定义的微妙之处——一个动作本身是否被认为是幂等的,或者你是否还必须考虑传递给动作的数据?

让我用一个例子来澄清:

假设我有一个更新某些资源的 PUT 方法,我们将调用它f(x)

显然,f(3)是幂等的,只要我提供 3 作为输入。同样明显的是,f(5)将改变资源的值(即,它将不再是 3 或以前的任何值)

所以当我们谈论幂等性时,我们是指像(即,f(x))这样的动作/函数的泛化,还是指的是动作/函数+传递给它的数据(即,f(3))?

0 投票
4 回答
1086 浏览

c# - IDisposable.Dispose() 实现应该是幂等的吗?

Microsoft.NET 框架提供了IDisposable需要void Dispose()方法实现的接口。其目的是启用手动或基于范围的IDisposable实现可能已分配的昂贵资源的释放。示例包括数据库集合、流和句柄。

我的问题是,该Dispose()方法的实现是否应该是幂等的——当在同一个实例上多次调用时,该实例只被“处理”一次,并且后续调用不会引发异常。在 Java 中,大多数具有相似行为的对象(我再次想到流和数据库连接作为示例)的close()操作是幂等的,这恰好是该Dispose()方法的类似物。

但是,我对 .NET(尤其是 Windows 窗体)的个人经验表明,并非所有实现(作为 .NET 框架本身的一部分)都是幂等的,因此对这些实现的后续调用会抛出ObjectDisposedException. 这真的让我对如何处理一次性对象的实现感到困惑。该场景是否有一个共同的答案,还是取决于对象的具体上下文及其用法?

0 投票
4 回答
691 浏览

java - 在我们称其为“幂等”之前,函数必须遵守哪些规则?

来自另一个线程的帖子说,如果一个函数可以多次调用而不改变结果,则称该函数是幂等的。

然而,使用的术语(如无副作用和返回相同结果)相对模棱两可。考虑这段代码:

我们可以说这F()是幂等的,因为连续调用F()返回相同的值吗?

或者它不是幂等的,因为如果在两者之间调用连续调用F()不会返回相同的值F2()

PS:计算机科学中定义的“幂等”,而不是数学。

0 投票
2 回答
325 浏览

ruby-on-rails - String#pluralize 是幂等的吗?

也就是说,对于任何 String string,以下是否成立?

0 投票
1 回答
1554 浏览

web-services - REST Web 服务的客户端 id 生成策略

假设我想构建一个 REST 服务来制作如下所示的笔记:

由于我希望我的服务是幂等的,所以我使用 PUT 来创建和更新我的笔记,这意味着新笔记的 id 是由客户端设置/生成的。

我曾考虑过使用 GUID/UUID,但它们很长,并且会使记住 URL 变得相当困难。同样从数据库的角度来看,当在大表中用作主键时,从性能的角度来看,这样的长字符串 id 可能会很麻烦。

你知道一个好的 id 生成策略,它生成短 id 并且当然可以避免冲突吗?

0 投票
1 回答
1493 浏览

ajax - ajax请求是否需要进行重定向后获取?

是否有任何理由将 post-redirect-get (prg) 用于您知道只会通过 ajax 请求发生的请求?

在这种情况下,您可能有一个发送的请求(通过 ajax 或直接),我们假设在后端我们可以区分哪个是哪个。在使用 prg 处理直接请求的情况下,是否有任何理由也使用 prg 处理ajax请求?

还是可以直接回复 ajax 帖子?

0 投票
2 回答
6570 浏览

sql - SQL 幂等性

我的 SQL 数据库项目中有一个部署后脚本,它注册了应该是数据库一部分的默认值。我希望这个脚本能够在不改变结果的情况下多次运行,所以如果我需要添加一点修改,我可以手动运行它。

我怀疑性能永远不会成为问题,因为这个脚本只会插入角色和权限。那么检查每一行是否存在的最干净的方法是什么,并且只插入那些不存在于表中的行?

0 投票
1 回答
725 浏览

jmx - 注册camel的ftp jpa Idempotent存储库时出错

我正在尝试按照此处http://camel.apache.org/file2.html的描述实现 jpa 幂等存储库,但我遇到了 Mbean 导出错误。

在我的 application-context.xml 我有以下部分。

如果我删除上述部分,则服务器(tomcat)启动就好了。有人可以帮我吗?

这是堆栈:

0 投票
3 回答
823 浏览

javascript - 如何使 jQuery `bind` 或 `on` 事件处理程序具有幂等性

有没有一种我可以调用$(selector).bind('click', handler)$(selector).on('click', handler)多次调用的方法,以便处理程序只附加一次?

现在,我有多个具有不同成功回调的 AJAX 处理程序,每个处理程序都会在页面上重新呈现一组不同的元素。理想情况下,我想将“重新附加事件”例程重构为单个函数,而不是所有人的例程。

我现在能想到的唯一方法是显式取消绑定,例如:

寻找一种自动执行类似操作的方法。