首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何避免外部Javascript问题挂起服务器?

如何避免外部Javascript问题挂起服务器?
EN

Server Fault用户
提问于 2009-08-08 18:03:08
回答 4查看 1.4K关注 0票数 2

在运行HAProxy的负载均衡器服务器挂起外部链接的Javascript库时,我遇到了一个奇怪的问题。我最近集成了Quantcast监控脚本,它工作了大约12个小时,第二天早上,我体验了大量的网络连接挂起,如下图所示。我的负载均衡器后面的所有well服务器都完全超载了连接。我删除了Quantcast的剧本,问题就消失了。

我在其他一些分析软件包中遇到了这个问题,但是Google analytics或Adsense (两个外部库)从来没有遇到过这样的问题。有没有人经历过这种情况,或有过如何避免这种情况发生的建议?

Netstat图

EN

回答 4

Server Fault用户

发布于 2009-08-30 11:04:49

你确定是由javascript引起的吗?

你把quantcast标签贴在哪里了?在页面的末尾尝试它,就在上面,这样它就不会延迟其他资源的加载(img,css等等)。

如果浏览器必须等待javascript,它们会“挂起”,但这只是因为它必须暂停呈现线程,以等待脚本中的document.write。它无法保持与端口80的tcp连接打开,除非您有资源加载问题。

这个图形看起来更像是内存不足的问题,如果您运行mpm预叉,请确保MaxClients设置得不太高,否则会遇到交换,导致大量已建立的连接,但没有提供任何服务。此外,检查http保持活动设置。

票数 1
EN

Server Fault用户

发布于 2009-09-01 23:36:57

我们通常在本地缓存外部javascripts。这样你就不必依赖第三方正确地为JS服务了。当然,这可能不是一个选项,取决于js正在做什么,或者它是否动态构建。但是,例如,你可以在本地托管谷歌分析公司的js。

这样做可以获得一些额外的好处,例如

  1. Gzip -一些外部js文件不会被压缩。
  2. 缓存头-您可以将缓存头设置为永不过期(通过文件名更改处理更新)。
  3. 更多的控制--当然,大人物们通常不会进行彻底的改变,但是外部链接javascript可能会有风险。
票数 0
EN

Server Fault用户

发布于 2009-09-03 09:02:38

使用window.onload事件,只有在页面完全加载(且连接已关闭)时,才能追加外部Javascript (使用简单的document.write或DOM构造)。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/51845

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档