2014-09-30 54 views
0

將JavaScript添加到頁面的最佳做法是什麼?我應該創建一個文件夾併爲每個頁面添加一個.js文件嗎?然後,我可以在我的視圖頁面的底部添加對JavaScript文件的引用。我應該在頁面底部嵌入JavaScript代碼而不是創建.js文件?這有什麼不同嗎?MVC 4和JavaScript

+1

恕我直言,這是無論你和作品很容易理解/維護,你可以簡單地將它們包含在視圖中,使它成爲模塊化的(可能使用requireJS/YepNope),或者嘗試從一個文件中壓縮/縮小。AngularJS(據我所知) the approac你在說什麼(好,壞或無動於衷)。 – 2014-09-30 13:08:28

+1

由於可以有很多答案,如何更改爲「*相關注意事項*」? – jozxyqk 2014-09-30 13:36:47

+0

謝謝大家。這真的很有幫助。 – user3802347 2014-09-30 13:40:07

回答

1

使用RequireJS for .NET。有一個NuGet軟件包。

關於設置和處理requireJs的信息如下:http://requirejsnet.veritech.io/

你的JS模塊看起來像

require([ 
     'jquery', 
     'bootstrap' 
], function ($) { 

    var indexScript = function() { 
     this.init(); 
    }; 

    indexScript.prototype.init = function() { 
     //do stuff with bootstrap 
    }; 

    //create object on DOM ready 
    $(function() { 
     var entryPoint = new indexScript(); 
    }); 
}); 

您可以配置像這樣的配置JSON文件的依賴性:

{ 
    "paths": { 
     "jquery": "jquery-1.10.2", 
     "jquery-validate": "jquery.validate", 
     "jquery-validate-unobtrusive": "jquery.validate.unobtrusive", 
     "bootstrap": "bootstrap", 
     "respond": "respond", 
     "i18n": "Components/RequireJS/i18n", 
     "text": "Components/RequireJS/text", 
     "menu-module" : "Controllers/Common/menu-module" 
    }, 
    "shim": { 
     "jquery-validate": { 
      "deps": [ "jquery" ] 
     }, 
     "jquery-validate-unobtrusive": { 
      "deps": [ "jquery", "jquery-validate" ] 
     }, 
     "bootstrap": { 
      "deps": ["jquery"] 
     } 
    }, 
    "autoBundles": { 
     "main-app": { 
      "outputPath": "Scripts/Bundles/", 
      "include": [ 
       { 
        "directory": "Controllers/Root" 
       } 
      ] 
     }, 
     "require-plugins": { 
      "outputPath": "Scripts/Bundles/", 
      "include": [ 
       { 
        "file": "Components/RequireJS/i18n" 
       }, 
       { 
        "file": "Components/RequireJS/text" 
       } 
      ] 
     } 
    } 
} 

在RequireJS方法。

後續編輯:@Anders RequireJS for .NET支持使用此處定義的YUI壓縮器進行捆綁和縮小:http://requirejsnet.veritech.io/compressor.html和版本化緩存。 (對不起,我無法評論

1

請務必爲javascript創建單獨的.js文件,並且不要直接在視圖中嵌入javascript。這對維護更好。但是,請注意,出於網絡性能的原因,對客戶端必須下載的文件的計數總是會更好(想一想移動用戶!)。所以我建議你使用縮小和捆綁ASP.NET提供的!

1

將大塊JS嵌入到HTML中是不好的,因爲.js,.css和圖像文件不會經常更改,瀏覽器可以緩存這些文件,但通常會自動生成HTML,無法緩存爲此。

1

避免內嵌的JavaScript。我建議使用Bundling and Minification,但你仍然可以有不同的JavaScript文件,如utilities.js,dialogs.js等