2013-03-11 42 views
0

即使壓縮,Javascript文件的大小也會偏高。我有一個網站,在桌面上看起來不錯,這要感謝javascript,我並不擔心那裏的大小。但是在移動設備上,即使額外的50 KB也是如此,所以我做了一些使移動設備看起來很棒的CSS更改,但是現在所有的JavaScript文件也都被髮送(移動設備),即使沒有必要他們更多。未加載/發送JavaScript到手機客戶端。 - HTML

如果客戶端有一個移動ID,是否有一種方法可以禁用所有javascript文件的發送?

+1

爲什麼不解決您的CSS桌面用戶,所以你根本不需要JavaScript? – Brad 2013-03-11 04:34:53

+0

因爲與桌面版本相比,移動網站看起來非常簡單。這使得css變得簡單,而桌面版本是完全的,並且真正需要javascript。 – Morki 2013-03-11 04:38:51

+0

您是針對特定設備(IOS/Andriod)還是針對所有移動瀏覽器? – 2013-03-11 04:53:51

回答

2

有很多,你可以處理這個方式,通過服務器端的庫像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);