2010-09-12 38 views
4

我們有很多javascript函數,通常通過onclick函數來處理。目前它們存在於任何需要的文件中。把所有的javascript函數合併到一個單獨的文件中並且在需要時使用它是否合理?這裏的一般做法是什麼如何重新使用javascript函數

  <s:link view="/User.xhtml" 
       onclick="if (confirm('#{messages['label.user.warning']}')) { 
        var f = $('user'); 
        f.method = 'POST'; 
        f.action = f.submit(); 
        } return false;"> 

回答

4

由您決定可重用性在您自己的代碼中的位置。但是很容易(也是一個好主意)創建一個經常使用的函數庫。創建像mylib.js一個文件,例如,用之類的東西......

function saveUser(f) 
{ 
    //... 
    f.method = 'POST'; 
    f.action = f.submit(); 
} 

添加到您的網頁:

<script type="text/javascript" src="mylib.js"></script> 

添加代碼的事件是這樣的:

<s:link view="/User.xhtml" onclick="return saveUser($('user'));"> 

請注意,庫代碼避免了使用它的頁面上元素的佈局或命名的任何依賴關係。您可能還想留下一些意見,以提醒您未來的自我這些圖書館功能的目的和假設。

5

是的!絕對把這個分解成一個外部的javascript。想象一下,如果你需要在這段代碼中改變一些東西。你現在需要改變多少個地方?不要複製代碼。它必須讓你的頁面變大,這顯然會影響下載量。

2

將所有javascript函數合併成單個文件並將其用於何處?

嗯...是啊

這將是更好的做這樣的事情:

function saveUser() { 
    // logic goes here 
} 

和使用標記

<s:link view="..." onclick="saveUser();"> 

使用代碼內嵌像,這是非常壞。不要這樣做。或者那些受歡迎的神會變得焦躁不安。

+0

只是想知道最佳做法在這裏,我沒有太多關於JavaScript的知識。 – user339108 2010-09-12 15:55:50

+0

即使使用onClick在我看來也是不好的做法 - 使用監聽器綁定事件。 – 2010-09-12 16:08:54

0

可以通過腳本標記訪問Javascript,該腳本標記可以指向外部腳本,也可以將其定義爲僅用於本文檔。

<script type="text/javascript" src="mycustom.js"></script> 

<!-- OR --> 
<script type="text/javascript"> 
function saveUser(username) { 
    //code 
} 
</script> 

沒有違法,但如果你不知道,你要麼在這個非常新的,或者你在學習JavaScript跳過了很多步驟。我建議閱讀關於javascript的w3schools.com教程以及其他您將使用的其他教程。

2

將JavaScript代碼放在JavaScript文件中總是一個好主意。就像你不混合內容和表示(XHTML和CSS)一樣,你不需要混合內容和交互(XHTML和JavaScript)。

把JavaScript代碼在一個單獨的文件中有幾個優點:

  • 無需重複的代碼(這樣更好的重用),
  • 可能性minify the source code,這是完全不可能的事情,如果你放在一起做XHTML和JavaScript,
  • 能夠使用非侵入式JavaScript,幫助創建更易於訪問的網站(從訪問點使用onclick和其他事件可能沒有什麼不對,但很容易忘記網站mus t沒有JavaScript,因此開發了一個不可訪問的網站)。
  • 更好的客戶端性能:更大的頁面會讓事情變得更慢;當您將JavaScript放在外面時,頁面更小,並且.js文件由瀏覽器緩存,而不是在每個請求上加載。