我有一个simple website,它稍微使用了jquery,但它并不重要,所以如果用户连接速度慢,我想跳过jquery下载。
理想情况下,我会发现连接速度很慢,但我认为检测手机可能是合理的代理。
如果可以,我会删除使用jquery的页面部分,并在加载jquery时动态添加它们。
我考虑的选项是:
但我不确定该说服哪个。
另外,我不能使用服务器端技巧,因为它是一个静态页面(以避免引起冷启动问题)。
答案 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是:)