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

我有一个简单的网站 ,它有点使用jquery但它不是必需的所以我想跳过jquery下载,如果用户连接速度慢。

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

如果这是可能的,那么我将删除使用jquery的页面部分,并在加载jquery时动态添加它们。

我考虑的选项是:

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

但我不确定该说服哪个。

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

我倾向于忘记它。

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

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

除此之外,我会继续并包括它。 如果您从谷歌的CDN中包含它,很可能它已经在用户的浏览器中,并且不必再次加载。

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

A>真正的<速度测试无法在你的szenario中完成。 (另外,“正常”速度测试,下降/加1MB在他们的结果中是非常随机的)

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

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