亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > PHP > 正文

幾個優化WordPress中JavaScript加載體驗的插件介紹

2024-05-04 23:41:05
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了幾個優化WordPress中JavaScript加載體驗的插件,一般來說在WordPress中加載JavaScript最好使用wp_enqueue_script()函數以減少問題提高效率,需要的朋友可以參考下
 

WordPress 本身以及主題和插件通常需要加載一些 JavaScript 來實現某些特殊功能。為了最大限度地保證兼容性,不至于出現 JavaScript 失效的情況,所以一般在頁頭加載 JavaScript 文件。但是根據 Yahoo 開發者論壇的建議,加載 JavaScript 應該盡量在頁尾以提高頁面的顯示(響應、渲染)速度。本文根據作者的使用經驗介紹幾個相關插件,并說明如何在某些特殊頁面仍然在頁頭加載 JavaScript。

下面先簡單介紹幾個相關的優化 JavaScript 的 WordPress 插件及特點,然后演示如何處理一些特殊情況。

一. 優化JavaScript的WordPress插件
我曾經用過 WP Minify、Autoptimize、JavaScript to Footer這三個插件,下面一一介紹其特點。

1. WP Minify
這個插件將 Minify 引擎整合到 WordPress 中。一經啟用,該插件就能夠合并和壓縮你的 JS 和 CSS 文件來提高頁面的加載速度。

WP Minify 能夠抓取生成的 WordPress 頁面中的 JS/CSS 文件,將文件列表傳遞給 Minify 引擎。Minify 引擎處理后返回一個加強、精簡并經過壓縮的 JavaScript 或樣式表文件(CSS),由 WP Minify 將其替換到 WordPress 頁頭中。

其主要特點是:

  • 易于使用;
  • 對 JavaScript、CSS 和 HTML 均有效;
  • 提供了調試工具;
  • 能夠處理外部 JS 和 CSS 文件;
  • 能夠排除指定 JS 和 CSS 文件;
  • 能夠指定處理后的 JS 和 CSS 文件的位置(頁頭或頁尾,甚至別的地方);
  • 可對處理后的 JS 和 CSS 文件添加過期時間等。


當 WordPress 3.1 測試版出來后,我發現 WP Minify 與之不兼容,會導致網站無法正確加載。

2. Autoptimize
也許將來 WP Minify 升級后會解決不兼容問題,但是我等不及了。后來找到了 Autoptimize 這個具有類似功能的插件,而且這個插件操作更簡單。

Autoptimize 整合、精簡并壓縮所有的 JS 和 樣式表(CSS)文件,增加緩存過期標志。然后將樣式表文件放到頁頭(同樣是為了提高頁面加載效率),并將 JS 文件放到頁尾。它還能夠精簡 HTML 代碼,給你的頁面瘦身。不過我覺得給 HTML 頁面瘦身作用不是很明顯,只要你的服務器開啟了 Gzip 壓縮特性就沒必要這么做了。

默認情況下,Autoptimize 會按照上面介紹的方式優化所有 HTML/CSS/JavaScript 。

我個人覺得,Autoptimize 是比 WP Minify 更好用的 WordPress 優化插件。

3. JavaScript to Footer
這個插件寫的非常簡潔。我查看了源代碼,完成任務的代碼只有 6 個 WordPress 函數(見下文),也就是 6 行。所以這個插件從創建之后就怎么更新過。我一開始就因為見它最后更改日期還停留在2009年9月22日,所以把它給忽略了。

但是它僅僅優化 JavaScript 的加載位置,也就是將所有在 WordPress 中正確聲明了的 Javascript 文件都給移到頁面末尾來加載。它沒有對 HTML 代碼和 CSS 樣式表文件作任何處理。

根據 JavaScript to Footer 的源代碼,它使用下面的 6 行代碼來完成工作:

remove_action('wp_head', 'wp_print_scripts');remove_action('wp_head', 'wp_print_head_scripts', 9);remove_action('wp_head', 'wp_enqueue_scripts', 1);add_action('wp_footer', 'wp_print_scripts', 5);add_action('wp_footer', 'wp_enqueue_scripts', 5);add_action('wp_footer', 'wp_print_head_scripts', 5);

如果有需要,可以在某個特定 WordPress 模板的 wp_head() 函數前加入下面的代碼,將上述過程逆轉過來,也就是使之失效,恢復成了本來的加載位置:

remove_action('wp_footer', 'wp_print_scripts', 5);remove_action('wp_footer', 'wp_enqueue_scripts', 5);remove_action('wp_footer', 'wp_print_head_scripts', 5);add_action('wp_head', 'wp_print_scripts');add_action('wp_head', 'wp_print_head_scripts', 9);add_action('wp_head', 'wp_enqueue_scripts', 1);

當然只是說某些特定的頁面模板,如果是所有頁面,那干脆禁用該插件好了 :D

二. 使用方法
相信對于大多數 WPer 來說,看了前面的介紹就知道如何選擇自己需要的優化插件并合理使用了。無非是基于以下三個方面來考慮:

你的頁面模板中是否使用了大量的 HTML 注釋、空格、空行等標記?如果沒有,那么你就不需要為了一點點(開啟 Gzip 壓縮時通常 1% 以下)的帶寬節省而使用 HTML 精簡功能;
你的頁面中是否加載了多個 CSS 樣式表文件?如果沒有,你也不需要通過插件來精簡和整合 CSS 樣式表,手工精簡和整合 CSS 樣式表比使用插件更加簡單有效;
基于 WordPress 默認會在頁頭中加載 JavaScript,一般的 WordPress 網站都需要對 JS 的加載位置進行優化。但是如果你大部分的頁面也都需要在頁面頭部加載 JS 以保證不會出現 JS 失效的情況,那你就不能進行這樣的優化了。
在我看來,WP Minify 就不需要了,原因在前面已經說過了。那么剩下的 Autoptimize 和 JavaScript to Footer 可以選用其一或者兩者配合使用(如果是配合使用,當然是使用前者的 HTML 和 CSS 精簡/整合功能,而使用后者的 JS 位置控制功能,因為后者就這一個功能)。我只需要控制 JS 的加載位置,所以就選擇了 JavaScript to Footer。因為我的頁面中也就四五個 JS 文件,又是放到頁尾加載,我覺得沒必要進行整合。

三. 特殊情況處理
雖然將 JavaScript 文件都放到頁面末尾加載對于頁面加載速度很有幫助,但是請注意,所謂頁面末尾指的是在 WordPress 的 wp_footer() 函數中調用,這個函數通常剛好位于頁面的 </body> 標簽前面(當然是末尾了)。

有時候我們可能會在 wp_footer 函數出現之前就需要用到某些 JavaScript,比如 jquery.js 文件。

這樣的情況也是很常見的。比如我單獨創建了一個鏈接頁面,在這個頁面中我使用了 jQuery 方法來獲取鏈接網站的 favicon。很顯然,我只需要在這唯一一個頁面使用這部分代碼,所以將這段代碼直接放在這個頁面模板中是最好的做法。問題來了:這部分內容顯然是在 wp_footer 之前出現的,那么這段代碼就在 jquery.js 文件之前出現了,導致該代碼段實際上無法工作,因為調用 jQuery 方法的代碼段必須比 jquery.js 文件后加載。


那么如何處理這種特殊情況呢?其實也很簡單。以上面的情景為例,既然我們需要先調用 jquery.js 文件,那我們就在該代碼段之前直接輸出需要的 jquery.js 文件,不使用 wp_enqueue_script() 函數,而改用 wp_print_scripts() 函數。

wp_enqueue_script() 與 wp_print_scripts() 的區別是:wp_enqueue_script() 是告訴 WordPress “我在這個頁面上需要用到某個 JavaScript 文件,你可要記得加載啊”。WordPress 默認在 wp_head() 中處理,而我們改為在 wp_footer() 中處理。wp_print_scripts() 則直接在你使用此方法的位置輸出需要的 JavaScript 文件,而不是加入到 WordPress 的處理任務中。

如果我們在頁面的中間使用,

 <?php wp_print_scripts('jquery'); ?>

直接輸出了 jquery.js 文件(通常是其壓縮版本 jquery.min.js),那么即使其它的插件或者什么東西使用,

 <?php wp_enqueue_script('jquery'); ?>

告訴 WordPress 需要加載 jquery.js,WordPress 在 wp_footer() 中處理的時候也會先檢查前面是不是已經有了,如果有了就不會再重新加載一次。

四. 結論
在 WordPress 中加載 JavaScript 最好使用 wp_enqueue_script() 函數以減少問題提高效率。如果不是有這些特殊情況要處理,使用 Autoptimize 顯然比較好,它全面完成任務而且使用簡單。

但是如果使用的主題本身已經很簡潔了,那么 JavaScript to Footer 更簡單高效,也就更好。



注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美日韩在线免费| 欧美国产乱视频| 久久久亚洲网站| 色妞一区二区三区| 4438全国亚洲精品在线观看视频| 亚洲第一综合天堂另类专| 国产精品夜间视频香蕉| 伊人久久大香线蕉av一区二区| 日韩综合中文字幕| 欧美精品在线免费| 亚洲最大福利网站| 国产精品永久在线| 亚洲免费视频一区二区| 菠萝蜜影院一区二区免费| 国产91精品久久久久| 欧美性生活大片免费观看网址| 国产91精品黑色丝袜高跟鞋| 97视频在线观看免费高清完整版在线观看| 亚洲男人7777| 国产亚洲精品美女久久久久| 欧美成人久久久| 国产精品久久久久久久久久尿| 亚洲大尺度美女在线| 欧美日韩亚洲精品一区二区三区| 国产福利成人在线| 亚洲一级黄色av| 97在线精品视频| 91性高湖久久久久久久久_久久99| 国产精品极品美女在线观看免费| 国产啪精品视频网站| 在线亚洲午夜片av大片| 欧美成人高清视频| 亚洲一区精品电影| 欧美国产在线视频| 国产视频在线观看一区二区| 久久久中文字幕| 国产97在线|亚洲| 久久中文字幕视频| 精品无人国产偷自产在线| 欧美激情乱人伦| 亚洲第一免费网站| 日韩中文字幕久久| 中文字幕国产日韩| 色哟哟入口国产精品| 欧美与欧洲交xxxx免费观看| 欧美性xxxx18| 成人国产亚洲精品a区天堂华泰| 国产精品专区第二| 91精品国产91久久久久久不卡| 久久久久久国产| 亚洲一区久久久| 欧美极品少妇与黑人| 激情亚洲一区二区三区四区| 高清一区二区三区四区五区| 精品一区二区三区电影| 国产日韩av高清| 亚洲精品电影网站| 在线亚洲午夜片av大片| 欧美亚洲国产精品| 精品在线小视频| 国产精品嫩草影院久久久| 亚洲精品理论电影| 国产精品久久久久久影视| 色偷偷噜噜噜亚洲男人的天堂| 亚洲无亚洲人成网站77777| 精品亚洲国产成av人片传媒| 欧美在线观看网址综合| 欧美重口另类videos人妖| 亚洲人成网站色ww在线| 国产精品91视频| 亚洲午夜精品久久久久久性色| 久久久www成人免费精品| 亚洲xxx大片| 亚洲欧美国产精品va在线观看| 久久精品99国产精品酒店日本| 伊人av综合网| 日韩欧美一区二区三区久久| 91黑丝在线观看| 久久夜色精品国产亚洲aⅴ| 国产精品观看在线亚洲人成网| 精品久久久久久亚洲精品| 久久久久久久久久久成人| 91精品免费久久久久久久久| 国产精品电影一区| 亚洲精品ady| 欧美性黄网官网| 久热精品视频在线观看| 国产精品午夜视频| 亚洲欧美在线看| 中文字幕亚洲欧美日韩在线不卡| 欧美午夜精品伦理| 在线精品高清中文字幕| 国产小视频国产精品| 亚洲欧洲在线看| 国产精品看片资源| 国产视频亚洲视频| 亚洲激情久久久| 欧美激情亚洲另类| 久久久女女女女999久久| 日韩欧美中文字幕在线观看| 2019中文字幕全在线观看| 精品偷拍一区二区三区在线看| 日韩av在线免费观看| 亚洲美女性生活视频| 久久午夜a级毛片| 亚洲天堂一区二区三区| 国内精品久久久久影院 日本资源| 热久久免费视频精品| 8x海外华人永久免费日韩内陆视频| 精品国模在线视频| 欧美性猛交xxxx乱大交蜜桃| 热久久免费国产视频| 日韩av一卡二卡| 欧美日本中文字幕| 亚洲第一区在线观看| 中文在线资源观看视频网站免费不卡| 日韩hd视频在线观看| 亚洲欧洲一区二区三区在线观看| 国模精品系列视频| 在线视频中文亚洲| 欧美日产国产成人免费图片| 尤物99国产成人精品视频| 日韩欧中文字幕| 欧美野外猛男的大粗鳮| 国产一区二区三区丝袜| 日韩亚洲精品视频| 欧美日韩国产精品一区二区三区四区| 精品视频www| 福利一区视频在线观看| 91影视免费在线观看| 欧美一级电影久久| 国产v综合ⅴ日韩v欧美大片| 欧美成人免费视频| 日韩精品视频中文在线观看| 中文字幕亚洲二区| 国产精品人成电影| 国产专区精品视频| 一道本无吗dⅴd在线播放一区| 成人黄色中文字幕| 久久国产一区二区三区| 日韩av一卡二卡| 亚州av一区二区| 精品一区二区亚洲| 国产91精品久久久久久| 狠狠综合久久av一区二区小说| 亚洲va欧美va国产综合剧情| 久久久av亚洲男天堂| 亚洲图片在线综合| 久久九九精品99国产精品| 成人性生交大片免费观看嘿嘿视频| 92版电视剧仙鹤神针在线观看| 亚洲热线99精品视频| 日韩综合中文字幕| 成人妇女淫片aaaa视频| 国产v综合ⅴ日韩v欧美大片| 美女久久久久久久久久久| 91精品视频免费| 久久99视频免费| 欧洲美女免费图片一区| 亚洲日韩中文字幕在线播放| 日韩av不卡电影| 亚洲国产精品嫩草影院久久| 26uuu另类亚洲欧美日本一| 久久99视频精品|