久久精品国产99国产精品免费看_中文成人在线_日本在线播放视频_精品国产一区二区三区在线观看

將WordPress REST API性能與admin-ajax.php進行比較

研究典型的REST請求以及提出的類似請求admin-ajax.php以了解它們之間的比較情況

自引入WordPress REST API以來,許多插件開發(fā)人員已開始將其插件轉換為使用REST API而不是較舊的AJAX API(admin-ajax.php)。除了REST API只是一種較新的技術外,有傳言說REST API也比舊的端點更快,更可靠,原因是在典型的REST請求期間沒有加載太多的WordPress。

在本文中,我們將研究典型的REST請求以及提出的類似請求admin-ajax.php以了解它們之間的比較情況。

將WordPress REST API性能與admin-ajax.php進行比較
將WordPress REST API性能與admin-ajax.php進行比較

admin-ajax.php請求的壽命

讓我們首先分解一下當我們向發(fā)出典型的AJAX請求時會發(fā)生什么admin-ajax.php。當您的瀏覽器對該文件發(fā)出請求時,它會加載其他一些核心WordPress文件,以便能夠在加載了核心功能的情況下滿足請求:

/wp-load.php
/wp-config.php
/wp-settings.php?(它會加載大多數(shù)核心文件,所有活動的插件和主題以及REST API)
/wp-admin/admin.php
/wp-admin/includes/ajax-actions.php

加載這些文件后,WordPress將調用該admin_init掛鉤,幾個核心功能都將掛鉤。在WordPress 4.5.3的此鉤子上調用了以下核心功能:

register_admin_color_schemes
send_frame_options_header
_wp_check_for_scheduled_split_terms
_wp_admin_bar_init
_maybe_update_core
_maybe_update_plugins
_maybe_update_themes

調用完這些函數(shù)后,WordPress最終將調用$_GET[‘action’]$_POST[‘action’]變量中提供的AJAX操作。

REST API請求的生命周期

admin-ajax.php請求相比,典型的REST請求看起來略有不同。由于REST端點是由WordPress重寫API處理的,因此請求將傳遞到/index.php,然后正常加載其余WordPress。

/index.php
/wp-blog-header.php
/wp-load.php
/wp-config.php
/wp-settings.php?(它會加載大多數(shù)核心文件,所有活動的插件和主題以及REST API)

與發(fā)送過來的請求不同admin-ajax.php,REST API不會通過加載WordPress管理部分/wp-admin/admin.php,也不會觸發(fā)admin_init動作掛鉤?;诖?,任何不依賴于管理員特定功能(但使用admin-ajax.php)的插件或主題都可能會通過切換到REST API來獲得輕微的性能提升。

基準測試

既然我們已經看到了幕后發(fā)生的事情,那么讓我們建立一個可以輕松進行基準測試的場景。為此,我們將創(chuàng)建一個可以在admin-ajax.php或REST API上運行的簡單函數(shù):

function benchmark_request() {
    $result = array( 'time' => time() );
    echo json_encode( $result );
    exit;
}

add_action( 'wp_ajax_benchmark_request', 'benchmark_request' );
add_action( 'rest_api_init', function() {
    register_rest_route( 'benchmark/v1', '/benchmark/', array(
        'methods'  => 'POST',
        'callback' => 'benchmark_request'
   ) );
} );

上面的函數(shù)只是返回JSON中的時間-這只會有助于使您更容易看到請求沒有被緩存。

為了執(zhí)行實際的基準測試,我們將使用ApacheBench,這是一個命令行基準測試工具,它使您可以一次觸發(fā)多個請求以了解服務器的性能。

讓我們admin-ajax.php先測試版本。

 ab -n 100 -c 1 -p ~/Desktop/post.data -g ~/Desktop/ajax.tsv -T application/x-www-form-urlencoded http://localhost/rest-api/wp-admin/admin-ajax.php

上面的命令將100個POST請求發(fā)送到該/wp-admin/admin-ajax.php文件并記錄響應時間。post.data引用的文件只是一個文本文件,其中包含要與請求一起發(fā)送的URL編碼的$ _POST值(在本例中為action=benchmark_request)。

將WordPress REST API性能與admin-ajax.php進行比較

在100個請求下,在MAMP和PHP 7上全新安裝WordPress且未激活其他插件的情況下,平均響應時間為253ms。這為基于REST API的相同測試提供了良好的基準:

ab -n 100 -c 1 -p ~/Desktop/post.data -g ~/Desktop/rest.tsv -T application/x-www-form-urlencoded http://loc
將WordPress REST API性能與admin-ajax.php進行比較

毫不奇怪,在此比較中,REST API的速度稍快,在100個請求中的平均響應時間為217ms。顯然,這并不是一個很大的差異,REST API僅比傳統(tǒng)的AJAX API快15%,但是在許多請求中,這種微小的差異肯定會加起來,尤其是當添加了更多插件時。

讓我們運行相同的基準測試,但激活一些插件。對于這些測試,我激活了一些常見的插件,您可能會在典型的網站上找到它們:

  • ACF
  • Akismet
  • Black Studio TinyMCE小工具
  • WP遷移數(shù)據(jù)庫
  • WP超級緩存
  • Yoast SEO

盡管總體響應時間有所增加,但admin-ajax.php和REST API之間的性能差距仍然大致相同。隨著額外的插件加載,REST API,將約16%的速度,并有一個平均響應時間490ms相比567ms以上admin-ajax.php

具有大量插件的網站可以通過REST API看到更大的性能提升,但這完全取決于正在運行哪些插件以及如何對其進行編碼。

因此,您應該使用WordPress REST API嗎?

從性能的角度來看,顯然有一點優(yōu)勢。添加自定義API端點非常簡單,并且由于不必加載太多WordPress核心(包括管理區(qū)域和常用admin_init鉤子),因此它admin-ajax.php在大多數(shù)情況下可能會比使用更快。

在可靠性方面,REST API仍取決于活動插件或主題的質量和完整性。編碼不良的插件仍可能輕易干擾REST請求,尤其是將來有更多插件采用REST API時。但是,由于使用REST API的插件較少,因此目前應該更可靠。

總體而言,至少考慮使用REST API絕對是一個好主意。添加自定義API端點非常簡單,并且切換現(xiàn)有代碼也不需要很多。

??
Npcink上的部份代碼及教程來源于互聯(lián)網,僅供網友學習交流,若您喜歡本文可附上原文鏈接隨意轉載。
無意侵害您的權益,請發(fā)送郵件至 1355471563#qq.com 或點擊右側 私信:Muze 反饋,我們將盡快處理。
?
購物車
優(yōu)惠劵
搜索
久久精品国产99国产精品免费看_中文成人在线_日本在线播放视频_精品国产一区二区三区在线观看

    9000px;">

      精品成人av一区二区三区| 蜜桃无码一区二区三区| 噜噜噜久久,亚洲精品国产品| 人妻91麻豆一区二区三区| 中文字幕免费高清网站| 国产精品欧美综合亚洲| 色噜噜在线观看| www.com国产| 秋霞av一区二区三区| 亚洲一区二区人妻| 久久成年人网站| 亚洲不卡在线视频| 国产女人18毛片水真多18| 日本亚洲色大成网站www久久| 亚洲综合精品国产一区二区三区| 久久精品—区二区三区舞蹈| 中文字幕精品一区二区精| 狠狠躁夜夜躁av无码中文幕| 午夜精品久久久久久久第一页按摩| 丰满少妇被猛烈进入一区二区| 欧美日韩免费一区二区| 91av久久久| 日本福利片在线观看| 91在线你懂的| 日韩精品人妻中文字幕| www.日本一区| 四虎精品永久在线| 国产精品热久久| 性色av一区二区三区四区| 国产午夜激情视频| 在线观看成人毛片| 久久精品国产亚洲AV熟女 | 天堂网成人在线| 国产成人自拍网站| 婷婷五月综合激情| 国产一级精品视频| 最新国产中文字幕| 久久久久99人妻一区二区三区| 亚洲国产欧美另类| 精品无码国产污污污免费网站| 中文字幕在线观看国产| 国产又黄又粗又猛又爽的| 在线免费观看av网| 男操女免费网站| 成人欧美精品一区二区| 午夜影院免费视频| 久久精品日韩无码| 丰满少妇一级片| 亚洲av无码精品一区二区| 国产三级国产精品| 亚洲视频免费播放| 日韩精品xxx| 国精品人伦一区二区三区蜜桃 | 91成人国产综合久久精品| 欧美一级片免费| 国产精品一区二区人人爽| 中文字幕久久av| 日韩不卡的av| 精品国产乱码久久久久久1区二区| 亚洲午夜久久久久久久久红桃| 色播五月激情五月| 精品在线视频免费观看| www日本高清| 亚洲区小说区图片区| 日韩一区二区视频在线| 精品国产鲁一鲁一区二区三区| 69视频在线观看免费| 亚洲 美腿 欧美 偷拍| 欧美成人免费看| 国产欧美精品一二三| 91香蕉一区二区三区在线观看| 一区二区三区伦理片| 日本一卡二卡在线| 久久久久亚洲AV成人| 国产性生活大片| 99热这里只有精品66| 亚洲码无人客一区二区三区| 婷婷伊人综合中文字幕| 人人妻人人藻人人爽欧美一区| 精品亚洲永久免费| 国产无遮挡裸体免费视频| 成人高清在线观看视频| ,亚洲人成毛片在线播放| 无码人妻精品一区二区三区9厂 | 91视频在线视频| 中文在线a天堂| 性欧美在线视频| 色呦呦一区二区| 青娱乐国产精品视频| 蜜臀精品一区二区三区| 精品人妻无码一区二区| 国产又粗又硬又长又爽| 国产精品久久免费| 成人免费看片98欧美| 99热这里是精品| av黄色免费网站| 91成人在线免费视频| 亚洲最大免费视频| 亚洲午夜久久久久久久国产| 亚洲精品国产精品国自产网站| 亚洲第一网站在线观看| 五月天婷婷久久| 无码人妻精品一区二区三区9厂 | 精品人妻无码一区二区三区| 国产乱人乱偷精品视频a人人澡| 爱情岛论坛成人| www久久久久久久| 国产激情第一页| 国产精品免费av一区二区| 国产乱码一区二区三区四区| 国产精品20p| 国产系列精品av| 精品一区二区无码| 久久久久亚洲AV成人| 男人的天堂a在线| 人人草在线观看| 日本少妇一区二区三区| 手机在线观看免费av| 亚洲 日本 欧美 中文幕| 一区二区三区久久久久| 亚洲高清精品视频| 亚洲欧美日韩动漫| 99免费观看视频| 国产乱人乱偷精品视频a人人澡| 国产人妻精品午夜福利免费| 精品国产18久久久久久| 久久精品女人毛片国产| 免费av网站在线| 深爱五月激情网| 中国一级特黄毛片| 91禁男男在线观看| 国产成人av片| 久久精品国产亚洲av无码娇色| 欧美熟妇一区二区| 午夜视频免费在线| 亚洲色成人www永久网站| av电影在线播放| 国产人妻精品午夜福利免费| 精品无码黑人又粗又大又长 | 欧美高清精品一区二区| 日日噜噜夜夜狠狠| 在线免费观看日韩视频| 91久久久久久久久久久久| 国产成人免费观看视频| 久久精品免费在线| 熟妇高潮一区二区| 亚洲免费成人在线视频| 国产成人精品一区二三区四区五区 | 中文文字幕一区二区三三| 5566中文字幕| 国产又黄又粗又猛又爽| 人妻一区二区三区免费| 中文字幕在线国产| 国产成人在线免费视频| 美女少妇一区二区| 在线观看国产中文字幕| 不用播放器的免费av| 久久久久久久伊人| 午夜性福利视频| www.久久久久久久久久| 久久艹免费视频| 一级做a爰片久久毛片16| jizz中国少妇| 免费在线观看一级片| 伊人网在线视频观看| 国产福利视频导航| 欧美自拍第一页| 杨幂一区二区国产精品| 久草手机在线视频| 一区二区三区在线播放视频| www欧美在线| 情侣偷拍对白清晰饥渴难耐| 亚洲天堂手机版| 精品欧美一区二区久久久久 | 日韩手机在线视频| 91精产国品一二三| 免费a在线观看播放| 亚洲国产精品二区| 精人妻无码一区二区三区| 午夜精品一区二区三区视频| www.伊人久久| 欧美一级片免费| 91高清免费看| 女同久久另类69精品国产| 亚洲精品911| 久久久久久国产精品日本| 中文字幕在线观看高清| 极品久久久久久| 中文字幕亚洲乱码| 九九久久免费视频| 亚洲男人天堂网址| 久久久久香蕉视频| 一级特黄色大片| 日本成人精品视频| 北条麻妃亚洲一区| 天天做天天干天天操| 国产免费美女视频| 中国一级免费毛片| 久久久久亚洲无码| 99re热视频|