最佳实践:Javascript中运行很长时间的轮询过程?
我正在开发一个触摸屏信息亭应用程序,它将部署在最新版本的Chrome上 应用程序需要每隔10分钟左右对web服务进行AJAX调用,以浏览任何更新的内容 由于它是一个kiosk应用程序,因此页面不太可能经常重新加载,理论上,除非kiosk关闭,否则应用程序可能一次运行数天 我想我关心的是内存的使用情况,而一个长时间运行的setTimeout循环是否会占用大量内存,则需要足够的时间 我目前正在考虑使用Web Workers,我还将研究Web套接字,但我想知道是否有人有过这方面的经验 干杯,最佳实践:Javascript中运行很长时间的轮询过程?,javascript,long-polling,Javascript,Long Polling,我正在开发一个触摸屏信息亭应用程序,它将部署在最新版本的Chrome上 应用程序需要每隔10分钟左右对web服务进行AJAX调用,以浏览任何更新的内容 由于它是一个kiosk应用程序,因此页面不太可能经常重新加载,理论上,除非kiosk关闭,否则应用程序可能一次运行数天 我想我关心的是内存的使用情况,而一个长时间运行的setTimeout循环是否会占用大量内存,则需要足够的时间 我目前正在考虑使用Web Workers,我还将研究Web套接字,但我想知道是否有人有过这方面的经验 干杯, Terr
Terry浏览器有一个垃圾收集器,因此在这方面没有问题。只要您不通过坏代码引入内存泄漏。以下是关于内存泄漏模式的详细信息。这应该让你开始学习如何高效地编程,并拍摄那些泄露的代码
也要考虑DOM。SO中的一个人曾经说过“不在屏幕上的东西应该被删除,而不仅仅是隐藏”——这不仅可以从视图中删除实体,而且实际上可以从DOM中删除实体,删除它的处理程序,并释放它使用的内存
至于setTimeout,请延长调用之间的间隔。太快了,你会很快地消耗掉内存(并使页面变得非常…滞后)。我刚刚测试了基于计时器的“hashchange”检测代码,即使在chrome上,它也会使页面速度变慢 研究chrome的漏洞并保持更新