Javascript 如何使用jquery处理phonegap应用程序中的1000条记录

Javascript 如何使用jquery处理phonegap应用程序中的1000条记录,javascript,jquery,cordova,Javascript,Jquery,Cordova,在我的应用程序中,我需要使用JSON从服务器检索1000-10000条记录,并需要将其存储在sqlite DB中供以后使用 for (i = 0; i < results.rows.length; i++) { //code to insert it into local DB } for(i=0;i

在我的应用程序中,我需要使用JSON从服务器检索1000-10000条记录,并需要将其存储在sqlite DB中供以后使用

for (i = 0; i < results.rows.length; i++)
    {
         //code to insert it into local DB
    }
for(i=0;i
我在这个过程中使用了“for循环”。我知道这在处理大数据(1000条记录)时并不好。但我不知道加快速度的其他方法/最好的处理方法。如果有人知道这件事,请帮帮我


谢谢,

因为JavaScript是单线程的,下面是我看到的选项:

  • 编写一个phonegap插件,该插件将使用本机代码存储数据,因此可以在不同的线程上运行
  • 使用setInterval()将“插入本地数据库的代码”块以短间隔放入。你的代码需要更长的时间来存储这些东西,但是你的用户界面会更有响应性
  • 在存储记录时,使用进度条或微调器弹出“处理”对话框

  • 希望这有帮助

    这有点令人困惑。您已经声明需要从数据库中“检索”1k+记录,但您的代码示例表明您正在编写记录。你到底想解决问题的哪一部分?@Thomas Ingham该应用程序正在从服务器获取数据,然后在本地存储。问题是如何有效地存储大量本地数据,因为JS在主应用程序线程上运行,并且在存储记录时会阻塞。如果我在user985393中错误地陈述了任何内容,请纠正我。在这种情况下,使用类似requestAnimationFrame的东西会很好,因为您不想阻止的是UI,这应该会给您一个模拟的每帧迭代。然后,您将测量执行插入的时间,以便在大约50毫秒后切断流程,以保持快速。伟大的概念@未知Space@ThomasIngham您在选项3中谈到了进度条,对吗?整个过程可能会在一个生成的间隔(…animationFrame)上运行,但是的,具体来说,进度条希望使用最好的非阻塞计时器。如果他使用的是ext data store(或敲除绑定),他根本不需要担心单独的层,但这超出了OP提出的问题的范围。