簡體   English   中英

為以后的頁面預加載外部JavaScript庫

[英]Pre-load external JavaScript library for later pages

我使用托管在CDN上的外部JavaScript庫。

有些用戶報告說,當他們第一次訪問需要此庫的頁面時,加載和渲染內容需要一些時間(庫呈現LaTeX)。

我想知道我是否可以通過(預先)將這個庫加載到其他頁面上來優化他們的體驗,然后再到達實際使用它的頁面。 這樣,我希望瀏覽器能夠盡早緩存庫,因此渲染可能會在以后更快地發生。

PS有問題的庫是MathJax。

既然你對MathJax特別感興趣,那么只需加載它就不會給你帶來太大的性能。 (雖然MathJax將被緩存,如果您使用MathJax CDN,您的用戶可能已經在訪問其他站點時緩存了它。)

有兩個原因導致您可能不會看到很多性能提升。

首先,MathJax動態加載其大部分組件。 例如,只有在用戶系統上沒有安裝兼容字體時才會加載MathJax webfonts,並且它們也會分成幾個部分,僅在MathJax實際遇到字符時加載。 其他組件也是如此。 這也意味着在沒有任何數學的頁面上,加載MathJax不會幫助你緩存太多。

話雖如此,通過使用以-full結尾的組合配置文件之一,可以稍微優化MathJax組件的實際下載,請參閱MathJax文檔

然而,排版通常是真正的性能影響。 MathJax輸出取決於您的內容以及用戶的屏幕,瀏覽器和操作系統的組合。 計算最佳擬合以及插入和回流內容都是一個具有一些基本限制的問題(IE8在標准模式下做得特別糟糕)。

PS:如果您有隱藏或動態內容,您可能需要查看配置選項skipStartupTypeset: true ; 請參閱MathJax文檔

[免責聲明:我是MathJax的一部分]

如果您在頁面末尾添加一個調用庫的腳本標記(就在html結束標記之前),則會在其之前加載其他所有內容,並且用戶可以在庫仍在加載時開始使用該頁面。

編輯:這允許您在另一個頁面上“預加載”庫而不會降低它的速度。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM