我正在为表单创建者站点创建一组用户友好的公式(类似于excel)。我有一个查找功能,他们可以用来指定他们想要的值和他们正在查找的值,例如Lookup(IWantThisVal,ByLookingUpThisVal)
。通过持久层中的配置设置,我可以创建此功能
var formula "return $.ajax({ async: false, cache: true, type: \"get\","
+ ("url: \"" + this.strategy.resource + "/\" + " + segments[1].trim()
+ " + \"/\" + " + segments[0].trim()) + "}).responseText;";
return new Function(formula);
还有一点(我知道async已被弃用),但我会遗漏细节。我的问题是AJAX
调用缓存。我测试了该函数,每次都看到存储过程运行(称为onblur
)。我猜它与动态有关吗?这里不太确定,因为这对我来说是新的。
答案 0 :(得分:0)
如果我理解正确,你有onblur
进行ajax调用的输入字段,你只希望它们在字段中的数据发生变化时触发?
您可以为每个input
提供输入字段的自定义html data-
属性,例如 data-dirty ='false'
文本框的onchange
事件会将属性设置为 data-dirty ='true'
如果输入元素
的data-dirty ='true',则只会触发ajax调用if(myInput.getAttribute('data-dirty')=='true')
{
//fire ajax call
}
在ajax调用结束时(成功,错误)重置为data-dirty ='false',以防止它重新发生该字段的每个onblur
事件