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

將WordPress REST API性能與admin-ajax.php進(jìn)行比較

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

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

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

將WordPress REST API性能與admin-ajax.php進(jìn)行比較
將WordPress REST API性能與admin-ajax.php進(jìn)行比較

admin-ajax.php請求的壽命

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

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

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

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

調(diào)用完這些函數(shù)后,WordPress最終將調(diào)用$_GET[‘a(chǎn)ction’]$_POST[‘a(chǎn)ction’]變量中提供的AJAX操作。

REST API請求的生命周期

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

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

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

基準(zhǔn)測試

既然我們已經(jīng)看到了幕后發(fā)生的事情,那么讓我們建立一個(gè)可以輕松進(jìn)行基準(zhǔn)測試的場景。為此,我們將創(chuàng)建一個(gè)可以在admin-ajax.php或REST API上運(yùn)行的簡單函數(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中的時(shí)間-這只會(huì)有助于使您更容易看到請求沒有被緩存。

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

讓我們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個(gè)POST請求發(fā)送到該/wp-admin/admin-ajax.php文件并記錄響應(yīng)時(shí)間。post.data引用的文件只是一個(gè)文本文件,其中包含要與請求一起發(fā)送的URL編碼的$ _POST值(在本例中為action=benchmark_request)。

將WordPress REST API性能與admin-ajax.php進(jìn)行比較

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

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進(jìn)行比較

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

讓我們運(yùn)行相同的基準(zhǔn)測試,但激活一些插件。對于這些測試,我激活了一些常見的插件,您可能會(huì)在典型的網(wǎng)站上找到它們:

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

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

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

因此,您應(yīng)該使用WordPress REST API嗎?

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

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

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

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

    9000px;">

      蜜臀精品久久久久久蜜臀| 成人综合在线观看| 95精品视频在线| 亚洲日本韩国一区| 欧美在线三级电影| 毛片av一区二区| 亚洲国产精品精华液2区45| 色欧美乱欧美15图片| 欧美a级一区二区| 中文乱码免费一区二区| 色8久久精品久久久久久蜜| 婷婷开心激情综合| 国产午夜精品久久| 欧美视频一二三区| 成人av在线一区二区三区| 亚洲电影一区二区三区| 国产拍揄自揄精品视频麻豆| 丁香啪啪综合成人亚洲小说| 亚洲一区二区三区四区在线| 久久婷婷色综合| 欧美日本乱大交xxxxx| 国产宾馆实践打屁股91| 亚洲福利视频一区二区| 国产精品激情偷乱一区二区∴| 欧美日韩电影一区| 色婷婷综合久久久久中文一区二区| 国模无码大尺度一区二区三区| 亚洲黄色录像片| 久久精品视频在线看| 日韩视频国产视频| 欧美日韩在线一区二区| 91免费看片在线观看| 成人aa视频在线观看| 国产揄拍国内精品对白| 日韩成人伦理电影在线观看| 亚洲一区二区在线免费观看视频| 中日韩av电影| 国产精品免费视频一区| 亚洲精品一区在线观看| 精品粉嫩超白一线天av| 精品少妇一区二区三区免费观看 | 精品视频一区二区三区免费| 国产91精品一区二区麻豆网站| 日韩成人免费电影| 亚洲第一会所有码转帖| 亚洲亚洲精品在线观看| 亚洲一区二三区| 成人免费在线播放视频| 亚洲天堂a在线| 亚洲欧美在线视频观看| 亚洲欧洲精品一区二区精品久久久| 欧美高清在线精品一区| 欧美国产一区在线| 国产精品久久一级| 国产欧美日韩三区| 亚洲人xxxx| 亚洲男人的天堂在线观看| 日韩久久一区二区| 亚洲精品国产精华液| 天天av天天翘天天综合网色鬼国产| 一区二区三区在线视频播放 | 日本不卡在线视频| 美女爽到高潮91| 精品成a人在线观看| 26uuu欧美| 国产女同互慰高潮91漫画| 欧美精品一区二区三| 国产欧美一区二区精品忘忧草| 久久女同精品一区二区| 国产色婷婷亚洲99精品小说| 国产精品欧美久久久久一区二区| 亚洲日本va午夜在线电影| 亚洲精品v日韩精品| 热久久一区二区| 成人综合婷婷国产精品久久蜜臀| 色呦呦日韩精品| 91麻豆精品国产91久久久久久| 久久综合视频网| 亚洲乱码国产乱码精品精的特点| 一区二区三区久久| 久久精品国产精品亚洲红杏| 成人午夜视频在线| 欧美久久一二区| 国产精品视频你懂的| 日韩中文字幕麻豆| 国产成人av电影在线| 日本道精品一区二区三区| 精品伦理精品一区| 最新热久久免费视频| 日产国产高清一区二区三区| 国产精品乡下勾搭老头1| 91久久线看在观草草青青 | 日韩免费高清电影| 中文字幕高清一区| 日韩国产高清影视| 91色综合久久久久婷婷| 日韩三级.com| 一区二区三区精品视频在线| 激情综合色丁香一区二区| 99视频国产精品| 精品国产a毛片| 亚洲香肠在线观看| 国产不卡视频在线播放| 日韩一区二区影院| 一区二区三区美女视频| 国产不卡视频一区二区三区| 精品欧美一区二区在线观看 | 日韩在线一二三区| 国产精品123区| 91精品综合久久久久久| 亚洲人成在线播放网站岛国| 国产老女人精品毛片久久| 欧美性一二三区| 亚洲欧美日韩一区| 国产不卡一区视频| 欧美精品一区二区在线播放| 偷拍一区二区三区四区| 日本久久一区二区三区| 国产精品久久久久久福利一牛影视 | 色狠狠一区二区| 国产欧美一区二区精品婷婷| 久久97超碰国产精品超碰| 69堂精品视频| 无码av免费一区二区三区试看| 欧美色倩网站大全免费| 亚洲国产精品尤物yw在线观看| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 美女视频黄免费的久久 | 91麻豆精品国产综合久久久久久| **欧美大码日韩| 夜夜嗨av一区二区三区中文字幕| 91色乱码一区二区三区| 亚洲色图色小说| 99国产精品国产精品毛片| 中文字幕一区二区三| 成人免费视频网站在线观看| 国产精品视频一二| 色综合久久久久综合体| 午夜精品123| 欧美一区二区三区啪啪| 日韩精品欧美精品| 欧美精品一区二区三区蜜臀 | 国产精品一区免费在线观看| 26uuu国产在线精品一区二区| 国产69精品一区二区亚洲孕妇| 亚洲国产精品ⅴa在线观看| 成人免费看的视频| 一区二区三区在线观看国产| 欧美猛男超大videosgay| 日本不卡一二三区黄网| 久久精品一区四区| 97国产一区二区| 天堂成人国产精品一区| 久久午夜电影网| 91国产视频在线观看| 麻豆精品在线观看| 欧美国产在线观看| 欧洲精品在线观看| 国产精品一区2区| 亚洲欧美日韩成人高清在线一区| 欧美伊人久久久久久久久影院| 亚洲第一在线综合网站| 国产日韩欧美a| 欧美日韩国产另类一区| 国产麻豆精品久久一二三| 亚洲天堂久久久久久久| 日韩一本二本av| 91小视频免费看| 国模冰冰炮一区二区| 一区二区成人在线观看| 337p日本欧洲亚洲大胆色噜噜| 波多野结衣在线aⅴ中文字幕不卡 波多野结衣在线一区 | 欧美日韩高清不卡| 国产成人在线视频网址| 午夜视频一区二区三区| 亚洲欧洲av在线| 亚洲国产精品t66y| 精品精品国产高清a毛片牛牛| 色菇凉天天综合网| 丁香婷婷综合激情五月色| 日本欧美加勒比视频| 亚洲欧美日韩系列| 欧美经典一区二区| 日韩欧美美女一区二区三区| 日本高清不卡一区| 99视频热这里只有精品免费| 国产精品99久久久久久有的能看| 日本视频在线一区| 亚洲第一电影网| 亚洲一区二区三区四区中文字幕| 亚洲欧美综合色| 国产三级三级三级精品8ⅰ区| 日韩一区二区精品| 欧美精品久久99久久在免费线| 色素色在线综合| 色综合一个色综合| 91亚洲国产成人精品一区二区三| 亚洲综合激情网| 亚洲国产成人av好男人在线观看| 亚洲区小说区图片区qvod|