簡體   English   中英

內聯Javascript:這是一個好習慣嗎?

[英]Inline Javascript: Is it a good practice?

我有很多視圖模板,其中有針對該視圖的內聯JavaScript。

例如:

app/views/something/index.html.haml
.some-id
  %h4 Something

#this javascript is not reused anywhere. Used only in this view
:javascript
  $(document).ready(function() {
    $('.some-id').addClass('something')
  })

擁有上述觀點是一種好習慣嗎?

跨多個視圖維護內聯javascript絕對是一件痛苦的事情。 因此,我開始將它們緩慢移動到一個javascript文件中。 但是我不確定這是否是件好事,因為現在所有頁面都將執行所有javascript。

那么哪個是放置特定於JavaScript的最佳位置?

如果您擔心頁面加載時間,則應使用loadjs之類的東西 那樣將JS放在您的視圖中只是不可維護的。 對於超級簡單的項目,也許可以,但是總的來說,您應該遠離它。

要注意的另一件事是,當從文件加載JavaScript時,瀏覽器將緩存您的JavaScript。 當內聯時,他們無法執行此操作,因為HTML在每次頁面加載時都會呈現。 因此,即使沒有loadjs,您也可能會在進行內聯時看到整體性能下降。

通常,我對此事的想法...

就外觀和可用性而言:如果可以在多個位置重用代碼,則應將其重新組合為一個函數。 可以調用此函數並減少文檔中的代碼行。 這將提高編寫代碼所花費的時間,也將使最終結果更加整潔並易於維護。

至於效率與加載頁面有關:我不認為您應該在每次頁面加載時都調用所有javascript。 與其將要在函數中重用的所有內容放到另一個文檔中,不如考慮將其中的一些分組在文檔的開頭。 從本質上講,它與僅包含javascript並沒有什么不同,但是,如果您使用一個大的javascript文件作為網站上所有頁面的庫,則可以通過僅放置所需的功能來減少某些代碼在文件的開頭。

編輯:為了更直接地回答您的問題,我相信,內聯javascript始終是一種不好的做法。

我不是一個總是相信這是真的的人。 我會說,在維護其他人的代碼時,我不介意他們使用內聯,外部文件還是將其放置在頭部,只要它們保持一致即可。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM