当我的网站第一次加载时,它运行一个小脚本来识别用户正在使用的设备。
在实验中,我添加了大量的旧设备等等。但反过来,注意到所有设备(包括PC)的初始加载速度都受到了影响。
例如,如果我要在脚本的最顶端写下这行代码:
如果是iPhone,则转到另一个javascript文件。
每个设备还会读取它,进入javascript文件并读取所有内容,从而像已经做的那样浪费时间吗?
基本上,如果我拆分我当前的设备识别器脚本,我会看到性能的提升吗?
我知道代码是自上而下运行的,但顶部的一些设备仍然需要几秒钟的时间才能稳定下来,比平时更长,就像它们运行整个脚本一样,因为它在一个大文件中。
发布于 2012-03-13 20:32:34
如果你加载一个脚本,它总是在执行之前被解析。因此,在脚本中添加条件只会阻止代码实际执行,每次都会加载和解析代码。
如果您希望防止加载和解析不需要的脚本,则需要一个脚本来有条件地加载另一个脚本。
发布于 2012-03-13 20:30:57
我会动态加载额外的JS,如下所示:
var isIphone = (function(){ /*determin if is iPhone, return true or false*/})();
if (isIphone){
var iPhone_js = document.createElement('script')
iPhone_js.setAttribute("type","text/javascript")
iPhone_js.setAttribute("src","/root/to/iphone/js")
}发布于 2012-03-13 20:35:22
您可以通过查看User Agent字符串来检查客户端正在使用的设备:
http://en.wikipedia.org/wiki/User_agent
然后,您可以为每个设备返回不同的HTML(包括不同的脚本)。
https://stackoverflow.com/questions/9683871
复制相似问题