1. javascript include
Javascript 沒有 include 語句有時挺討厭, 特別是腳本和腳本之間存在依存的關系, 你根本就不能動態的去控制加載腳本, 一般來說最簡單的 include 基本就是這樣的, 當然我們這個使用了 jQuery 來進行請求腳本.
需要注意的是該函數其實在發送GET請求的事情是 jQuery.ajax 的 getScript() 來處理的, 但是在GET后的處理和 $.getScript() 不同, 因此導致使用方法會不一樣, getScript() 一般需要把有依賴的函數寫到它的回調函數中去, 如:
$.getScript('some.js', function() {
// 做寫依賴 some.js文件的事情.
});
而我們這里的 include 不需要這么寫, 而是直接:
include('some.js');
// 這里可以直接寫依賴 some.js 文件中定義的函數
開啟緩存
另外就是關于文件緩存, 默認情況下 $.getScript 是會在 url 后面加上一個時間戳, 使得在第二次請求的時候不讓瀏覽器去讀取緩存文件, 如果我們 getScript("some.js") , 最后在請求的時候會變成 GET some.js?_23432434534235 之類的, 這是一種強制不緩存的策略, 在開發階段是比較好的, 但到了生產階段, 會導致用戶的瀏覽器每次都不緩存我們的js腳本, 這對效率是很大的影響, 我們應該自己在js腳本后面自己加上版本戳, 比如 some.js?v=1 , 而不是使用每次都會變的時間戳, 所以需要使用:
$.ajaxSetup({ cache : true });
這樣就會關閉jQuery自動在url后面加上時間戳的特性.
requireJs
如果你的腳本大量的存在互相依賴關系, 而又需要動態的決定加載哪些腳本, 那么我推薦的是使用requirejs .
它的基本用法是:
require(["some/module", "a.js", "b.js"], function(someModule) {
// do something
});
它有一個要求就是你的前端js是作為模塊式的開發, 在前端邏輯比較復雜的話, 使用模塊式來進行前端開發應該是種不錯的選擇, 而關于JS的模塊式開發在今后文章再專門談, 這里只簡單介紹一下, 如果對這個方面感興趣的可以到requireJs官網去看看.
新聞熱點
疑難解答