2011-07-21 30 views
1

我最近接管了用asp.net編寫的網站的開發。在開始使用之前,我花了很少時間處理Web應用程序。由於我在這方面沒有經驗,所以我很猶豫要批評,但我覺得這個網站寫得很糟糕。javascript代碼重用asp.net

看由Visual Studio產生以下的搜索結果:

\website\js\ADMIN_userprofile.js(715):function sendInvite() { 
    \website\js\ADMIN_userprofilePro.js(745):function sendInvite() { 
    \website\js\mycontactdetails.js(466):function sendInvite() { 
    \website\js\mycontactdetailspro.js(466):function sendInvite() { 
    \website\js\mycontactrequestspro.js(676):function sendInvite() { 
    \website\js\mycontacts.js(239):function sendInvite() 
    \website\js\mycontactspro.js(240):function sendInvite() 
    \website\js\mygroups.js(103):function sendInvite() 
    \website\js\myprofile.js(715):function sendInvite() { 
    \website\js\myprofilepro.js(745):function sendInvite() { 
    \website\js\search.js(55):function sendInvite() {  
    \website\js\searchpro.js(55):function sendInvite() {       
    \website\search.js(44):function sendInvite() { 

每個的那些功能是相同的。無論何時他們覺得另一個頁面需要sendInvite()功能時,某人已經複製了整段代碼。在相關的.aspx頁面中,通常會有一個點擊鏈接來調用該函數,還有一些隱藏的彈出窗口被javascript調用,以表示諸如「您確定要發送邀請嗎?」。以一種與網站設計的其餘部分一致的方式。

克隆代碼很糟糕,而且很難維護。但是,我不知道如何去做這個更好的事情。我可以將所有功能(JavaScript和彈出窗口的東西)封裝到一個設備中,我可以在需要時參考它?我已閱讀了有關使用.ascx頁面(在我繼承的源代碼中謹慎使用)的內容,但我不知道是否可以安全地使用JavaScript。

回答

2

發抖

沒有什麼比代碼複製所有的地方惡化。

最簡單的做法是將函數複製到單個js文件中,從所有其他js文件中刪除代碼,並確保新腳本文件包含在調用其中一個函數的任何頁面中它使用HTML中的腳本標記。

+0

這看起來像最簡單的事情,謝謝。 – Oliver

2

嘗試對JavaScript模塊管理像

然後把你的功能模塊和require該模塊在您的網頁英寸

+0

謝謝,我會在一些其他地方嘗試這個功能,其他JavaScript函數調用函數。由於這個特殊的功能更加面向外部,我將直接包含在每個頁面上。 – Oliver

1

是男人只是採取的方法,並把它放在一個.js文件,彈出到一個文件夾中您的解決方案,然後在你需要它的每個.aspx頁面中,只需將其導入:

<script type="text/javascript" src="<YOUR_LOCATION>"></script>