我有一个巨大的表格,我打算让质量保证人员在每年的产品质量审核数据收集中使用OFFLINE。由于法规要求的复杂性,该表格包含1900多个字段和单选按钮。
我目前已通过sisyphus.js调用localStorage,它正在工作-保存所有字段的数据就好了。
我的问题是,在加载过程中,表单需要7秒钟才能完成加载-尽管时间很长-但这不是真正的问题。我的实际问题是,输入任何内容后,在onblur事件发生后,表单需要2秒钟多一点的时间才能接受表单的其他任何输入。
这是我的代码:
$('form').sisyphus({
locationBased: false,
timeout: 10,
autoRelease: false
});
我的问题:是否有一种方法可以由用户决定是否通过按钮或其他方法来调用数据存储,以防止数据输入过程中的不断中断?
谁有想法?
最佳答案
您正在使用的插件(sisyphus.js)似乎不是为处理“大量”字段而编写的。
如果您查看源代码:
https://raw.githubusercontent.com/simsalabim/sisyphus/master/sisyphus.js
您会看到有一种方法saveAllData
。结合bindSaveDataOnChange
方法,它可以在每次更改字段时保存所有字段。
而且,如果不是这种情况,您仍然每10秒就会有2秒的延迟(超时选项)。
我希望有一个快速修复方法,是对fork进行修改/修改或覆盖该插件以使bindSaveDataOnChange
方法无效,并实现一个钩子(Hook)以在单击按钮时保存表单数据。并且,也许删除或增加timeout
选项。