2010-06-23 58 views
2

我有這樣的代碼:javascript:多行和單行之間的優勢是什麼?

<script type="text/javascript"> 

    var _gaq = _gaq || []; 
    _gaq.push(['_setAccount', 'UA-17115993-1']); 
    _gaq.push(['_trackPageview']); 

    (function() { 
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; 
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; 
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); 
    })(); 

做它在所有問題,如果把它全部在同一行?會有關於瀏覽器如何解釋它的任何問題>?

<script type="text/javascript"> var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-17115993-1']); _gaq.push(['_trackPageview']); (function() {  var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;  ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';  var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); </script> 

回答

2

它應該在同一行上全部運行。多行優勢在於它更具人性化。瀏覽器不會在意。

3

不,只是可讀性。

這是一個js文件和一個標籤爲.min(取決於誰寫的,當然)之間的區別。

3

不,空白不重要。注意丟失分號:

與C不同,JavaScript源代碼中的空格可以直接影響語義。由於有一種叫做「分號插入」的技術,當分析一個新行時,一些形成良好的語句將被視爲完整的(就像在分隔符之前插入分號一樣)。

來源:Wikipedia - JavaScript Syntax

事實上,大多數minification工具,如Google Closure Compiler,或YUI Compressor,將刪除空格作爲微小的一部分。

因此,通常建議您以可讀的方式編寫JavaScript代碼,然後使用縮小工具刪除空白。並且總是用分號明確地終止你的語句。

3

問題將是可維護性。將所有內容組合在一條線上使閱讀變得更加痛苦。

就代碼的功能操作而言,沒有區別。

如果您關注的是大小,最好的辦法是將原始代碼文件保留爲多行,然後使用自動縮小工具創建您的生產Web服務器提供的縮小版本。

1

此外,縮小的文件通常更難以調試。例如,如果所有內容都在一行上,則不能在Firebug中的特定行中設置斷點。

1

它將全部運行在同一條生產線上,在一條生產線上的唯一真正優勢是節省帶寬,對於99.9%的網站而言,節省的空間不夠大。您的主要關注點應該是可讀性。

如果您試圖使其無法讀取,那麼您的嘗試將是徒勞無益的,因爲混淆是一種非常弱的安全形式。

相關問題