最佳实践:在Javascript中运行很长时间的轮询过程
Best practice: very long running polling processes in Javascript?
我正在开发一个触摸屏kiosk应用程序,该应用程序将部署在最新版本的Chrome上。
该应用程序需要每隔10分钟左右对web服务进行AJAX调用,以获取任何更新的内容。
由于它是一个kiosk应用程序,所以页面不太可能经常重新加载,理论上,除非关闭kiosk,否则该应用程序可能一次运行几天。
我想我关心的是内存使用情况,以及运行很长时间的setTimeout循环是否会占用大量内存是否有足够的时间。
我目前正在考虑使用Web Workers,我也将研究Web套接字,但我想知道是否有人对这类事情有任何经验?
干杯,Terry
浏览器有一个垃圾收集器,所以没有问题。只要你不通过坏代码引入内存泄漏。这里有一篇文章和另一篇关于内存泄漏模式的文章。这应该让你开始学习如何高效地编程,并解决那些泄漏的代码。
此外,您还必须考虑DOM。SO中的一个人曾说过,"不在屏幕上的东西应该被删除,而不仅仅是隐藏"——这不仅删除了查看视角中的实体,而且实际上从DOM中删除了它,删除了它的处理程序,它使用的内存将被释放。
至于setTimeout,请延长调用之间的间隔。太快,将快速消耗内存(并使页面变得非常…滞后)。我刚刚测试了基于定时器的"hashchange"检测代码,即使在chrome上,它也会使页面变得相当慢。
研究chrome的bug并保持更新。
相关文章:
- 为什么我的上下文选择器和.buttonset()在ie中花费了这么长时间
- 谷歌地图需要很长时间才能在ie11中渲染
- 有没有一种方法可以检查javascript以毫秒为单位执行一个函数需要多长时间
- 我一直收到的控制台警告是什么?推迟长时间运行的计时器任务以提高滚动的流畅性
- 为什么这个代码不起作用?我花了很长时间试图弄清楚这一点
- 如何在长时间执行JavaScript期间显示微调器
- 长时间轮询:每个浏览器中的通知
- 完整日历:如何支持一次点击和不长时间点击
- 如何使用 javascript 停止对 asp.net 进行正在进行的回发(长时间运行的执行)
- 为什么这个 AJAX 调用需要这么长时间
- 为什么这个正则表达式需要这么长时间才能执行
- 如何修复长时间运行的脚本
- Node.js中的垃圾收集作用域-变量将保持设置状态多长时间
- javascript秒表限制最长时间
- 长时间运行的脚本IE与Chrome/Firefox
- 有没有一种方法可以在长时间运行的JavaScript操作之前强制回流
- 我的无引用 JavaScript 对象存在在哪里以及存在多长时间
- 最佳实践:在Javascript中运行很长时间的轮询过程
- 使用jQuery为长时间运行的过程保持会话活动
- 在长时间执行过程之前和之后使用Jquery更改元素css