2011-06-24 37 views
0

我GOOGLE了很多尋找這個問題的答案,但沒有找到任何東西。jQuery.getScript vs yepnope性能

除了像yepnope這樣的腳本加載器提供的其他功能之外,它是否會給我提供比jQuery.getScript更好的性能和更好的緩存管理?

由於提前,

西蒙

+0

請注意,默認情況下,'jQuery.getScript()'使用'cache:false',這會損害頁面第二次加載的性能。 – Richard

回答

3

原則,他們在功能上是相同的。從yepnope這樣的東西獲得的最大收益是集成的條件加載。而使用$ .getScript,您必須手動進行必要的布爾檢查。 yepnope已經被測試支持,但是如果你想在你的自定義條件加載代碼中使用相同的確定性,你就必須自己編寫代碼。

總之,yepnope只是一個像jQuery這樣節省時間的工具,本身就是一個節省時間的工具。在jQuery中你無能爲力,在vanilla JavaScript中無法做到這一點;它只需要更多的時間,精力和努力。如果你正在考慮動態加載腳本,我建議你使用一個庫,而不是重新發明輪子。

有趣的是,yepnope實際上是捆綁到Modernizr(我不知道)。因此,如果您希望開始使用HTML5,那麼您可以添加Modernizr,並將您的食譜,功能感知糖和動態腳本集中在一起。

+0

我已經在使用Modernizr,這就是爲什麼我更加關注yepnope。我指責jQuery.getScript的主要原因是,在第一次加載時,它(或者至少它似乎是它)不包含像etag這樣的頭部,因爲它不知道它們,因此即使您已經獲得了完整的腳本它在前一天,仍然在你的緩存中。對於像yepnope這樣的不使用ajax請求來加載腳本的lib,這是否仍然會出現這種情況? –

+0

Yepnope * does *使用AJAX加載腳本,並且實際上它要求您的服務器返回過期標頭才能正常運行。 Etags並不真正用於任何事情。如果你已經在使用Modernizr,那麼這是一件不容易的事情。功能已經存在,但不使用它而是從頭開始編寫自己的代碼是很愚蠢的。 –

+0

非常感謝您的回答,我沒有更多的問題先生;-) –

1

如果您正在加載多個JS文件,您也可以使用head.js。