我有一个 sencha touch 2 Web 应用程序,它使用本地存储数据源来存储一堆记录。
我能够很好地执行所有常见的 crud 操作,但我想使用 web 服务同步数据。因此,sencha 应用程序将定期轮询 web 服务以获取数据更改,然后对我的 sencha 应用程序的本地存储数据源进行必要的更改。
我的方法是使用以下代码块每 60 秒运行一次同步过程:
var timerID = setInterval(function()
{
MyApp.app.BackgroundProcessingMain();
}, (60000));
在“BackgroundProcessingMain()”中,我有各种方法调用来同步各种数据存储 (5)..
我调用 web 服务并取回我需要的数据,然后我的方法是遍历返回的数据,将我的存储过滤到返回数据的当前项的 id,然后删除它,或者根据需要更新它. 这很好.. 但是,如果这个后台进程启动并且我正在查看一个绑定列表控件,我的列表使用我的数据源的过滤版本,突然下降到只显示一个项目,通常是最后一个需要同步的返回数据,因为它是我的更新过程过滤存储以操作的最后一个数据。
我以为我可以使用 store.findById,获取记录引用并以这种方式更新/删除,但是如果由于我的绑定列表需要的视图已经过滤掉了特定 ID,则在商店中找不到记录,因此不更新了。。
我想做的是获取商店的临时副本,未经过滤,能够修改它,然后当我的应用程序在下次显示表单时查询本地存储时,它只会得到新的更新数据..
这基本上就是我在标题中所说的“安静地”。
有没有人建议我可以采取什么过程来完成此更新..??
如果你有示例代码,那就太棒了,但伪代码很好..
谢谢