2010-10-08 128 views
1

我有一箇中等大小的遺留php應用程序,幾乎沒有JavaScript集成。我最近一直在使用Douglas Crockfords excellent book學習javascript(是的,實際上是在學習它),並將YUI作爲我的選擇庫。我已經嘗試了幾件事情,並得到了一些工作,但現在我想將各種組件等集成到我的應用程序中,我的問題是如何去做這些以便於維護和代碼重用。我應該如何將一些javascript集成到一個php應用程序中?

目前,該應用程序包括

  • PHP頁面
  • Smarty模板(有一些特殊的模板標記HTML模板)的網頁,讓多個模板可用於單頁的每個部分。
  • 單個css文件。

我有關於如何將我的javascript集成到頁面中的以下想法。

  1. 在每個smarty模板中寫入inline javascript和該部分所需的代碼。
  2. 編寫一個單獨的.js文件,與每個鏈接的smarty模板一起運行,然後使用一個內聯腳本運行它。
  3. 爲每個php頁面提供一個獨立的.js文件,該文件具有整個.php頁面所需的全部功能。一個小的內聯函數可以調用所需的任何函數。
  4. 我還沒有做的東西?

這是否有意義?有沒有人有這個好的建議?

更新:信息的

一個額外的一點是,它的一個內部應用程序,所以它不是那麼重要,限制一切到一個文件中。其他

回答

1

兩個選項:

  1. 包含所有JS爲整個網站的單個的JS文件。根據您的緩存設置,您應該能夠讓用戶爲整個站點下載一個文件,併爲每個其他頁面使用一個緩存版本。
  2. 根據功能劃分你的JS,而不是頁面,並且包含每個頁面需要的任何功能。例如。一個頁面可能需要製表符,表單驗證和動畫,而另一個頁面可能只需要製表符。

或者你可以混合使用這些:一個JS文件包含絕大多數的代碼,如果特定的頁面或模板需要,還可以包含一個額外的文件。

沒有提到的方法是錯誤(雖然我會盡可能地跳過內聯JS);哪一個最好取決於你的確切情況和你的個人喜好。

1

首先,大多數設置允許您在其中可以放置常用頁面的主佈局模板,或者每個模板都包含一些全局標題。

話雖這麼說,你應該做的1,2和3組合:

有被包括在包含全局功能的所有模板的.js。每個模板也可以有選擇地擁有自己的.js特定於該頁面或頁面的一部分。最後,如果頁面特定的代碼量很小(或者每次都必須動態生成),那麼爲它啓動另一個http連接是沒有意義的,因此該源代碼在模板中是正確的。

1

如果你沒有大量的javascript,然後創建一個外部的js文件並將其包含在網頁的標題中並完成它。

相關問題