如何禁用低带宽连接的jquery包含

时间:2011-01-21 23:06:18

标签: javascript jquery bandwidth

我有一个simple website,它稍微使用了jquery,但它并不重要,所以如果用户连接速度慢,我想跳过jquery下载。

理想情况下,我会发现连接速度很慢,但我认为检测手机可能是合理的代理。

如果可以,我会删除使用jquery的页面部分,并在加载jquery时动态添加它们。

我考虑的选项是:

  • 通过下载小图片来测试连接速度
  • 下载jquery但是大约一秒后超时(我搜索了取消下载但没有找到任何内容)
  • 将jquery全部放在一起,然后编写我需要的javascript(虽然我可能会对某些浏览器出错)
  • 在一些javascript中包装jquery下载,检查forrageod或iphone的useragent
  • 尝试使用css媒体选择器来控制jquery下载

但我不确定该说服哪个。

另外,我不能使用服务器端技巧,因为它是一个静态页面(以避免引起冷启动问题)。

2 个答案:

答案 0 :(得分:6)

我倾向于忘记它。

任何严肃的速度测试都需要传输比jQuery库更重的数据。

您可以为用户提供选择(例如“打开低带宽网站”)并将该选项存储在Cookie中。然后,您可以检查cookie的值,并在服务器端嵌入或不嵌入jQuery,或者使用JavaScript,如@ banjomonster对this question的回答所示。

除此之外,我会继续将其包括在内。如果你从谷歌的CDN中加入它,很可能它已经在用户的浏览器中了,而且不必再次加载。

答案 1 :(得分:0)

我同意我的前身。 jQuery很可能会在用户缓存中,在ISP缓存中,或者通过CDN(例如Google)快速提供服务。

A> real<你的szenario无法进行速度测试。 (另外,“正常”速度测试,下降/上升1MB在他们的结果中非常随机)

只需查看速度分析,您就可以在页面的head部分启动一个计时器,并测量进入onLoad事件/页面底部所需的时间(您可以在其中加载jquery和其他javascript文件)并执行它们)。 时间间隔会告诉你一些关于速度的事情。但是这个数字会被用户系统和运行的其他应用程序所迷惑(降低执行速度),以及您的服务器可能过载并且没有响应那么快。

正如我读到的那样,你正在考虑“一起删除jquery,只需编写你需要的javascript”。 我想指出Google Closure Compiler查看您使用的所有代码和功能,并删除您不需要的所有功能,显着缩小代码! 此外,我会考虑使用Zepto而不是jQuery - 它具有与jquery相同的功能集,占用空间更小(但仅支持现代浏览器)。它由Thomas Fuchs(Script.acolo.us成名)编写,这是一个像John Resig(jQuery)这样的brainiac是:)