Javascript 文件的大小往往偏大,即使在压缩时也是如此。多亏了javascript,我有一个在桌面上看起来很棒的网站,而且我不担心那里的大小。但是在移动设备上,即使是额外的 50 KB 也很大,所以我做了一些 css 更改,使移动设备看起来很棒,但是现在所有的 javascript 文件也都被发送(到移动设备),即使不需要他们了。
如果客户端具有移动 ID,我有没有办法禁用所有 javascript 文件的发送?
Javascript 文件的大小往往偏大,即使在压缩时也是如此。多亏了javascript,我有一个在桌面上看起来很棒的网站,而且我不担心那里的大小。但是在移动设备上,即使是额外的 50 KB 也很大,所以我做了一些 css 更改,使移动设备看起来很棒,但是现在所有的 javascript 文件也都被发送(到移动设备),即使不需要他们了。
如果客户端具有移动 ID,我有没有办法禁用所有 javascript 文件的发送?
有很多方法可以解决这个问题,通过像WURFL这样的服务器端库,甚至是简单的用户代理检查,并使用网关方法来加载脚本
var is_mobile = navigator.userAgent.match(/android|iphone/ig);
var require = function(src, success, failure, force_load){
if( is_mobile && !!force_load ){ return; }
var script = document.createElement('script');
script.async = true; script.type = 'text/javascript'; script.src = src;
script.onload = success || function(e){};
script.onerror = failure || function(e){};
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(script);
}
// loaded just for desktop
require('js/desktop-script.js', function(){ // onload
// desktop only script
}, function(){ // onerror
console.log("Something went wrong loading this script");
});
// loaded for desktop and mobile
require('js/jquery.js', function(){ // onload
// desktop and mobile script
}, function(){ // onerror
console.log("Something went wrong loading this script");
}, true);