久久精品国产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国产精品免费看_中文成人在线_日本在线播放视频_精品国产一区二区三区在线观看

    国产有码在线一区二区视频| 你懂的视频欧美| 亚洲国产视频a| 国产精品久久久久7777婷婷| 久久激情五月激情| 亚洲一区二区三区高清| 在线成人国产| 国产欧美日韩亚州综合| 欧美伦理91i| 久久女同互慰一区二区三区| 亚洲天堂免费观看| 亚洲欧洲日韩在线| 亚洲动漫精品| 好吊妞**欧美| 国产欧美一区二区三区国产幕精品| 猛男gaygay欧美视频| 欧美诱惑福利视频| 亚洲自拍三区| 一区二区欧美在线| 99视频精品在线| 亚洲国产高清自拍| 在线国产欧美| 精品不卡在线| 国产亚洲成av人片在线观看桃| 欧美第一黄网免费网站| 亚洲专区一区| 午夜精品免费| 欧美专区福利在线| 久久不见久久见免费视频1| 亚洲一区欧美| 性欧美大战久久久久久久免费观看| 在线亚洲电影| 亚洲专区在线| 欧美有码视频| 久久伊人亚洲| 欧美精品亚洲精品| 国产精品v欧美精品v日韩精品| 欧美日韩三区| 国产精品xxxxx| 国产精品一级久久久| 国产欧美日韩精品一区| 国产在线精品一区二区夜色| 红桃视频一区| 最近中文字幕日韩精品| 99国产精品视频免费观看| 夜夜爽www精品| 亚洲综合首页| 久久一区二区三区四区| 欧美成人中文| 国产精品福利av| 国产自产在线视频一区| 亚洲电影欧美电影有声小说| 亚洲精品久久久一区二区三区| 亚洲人线精品午夜| 亚洲欧美乱综合| 美女成人午夜| 国产精品九九| 亚洲国产精品一区二区三区| 亚洲美女一区| 久久久蜜桃精品| 欧美亚洲不卡| 亚洲第一二三四五区| 亚洲视频二区| 欧美v亚洲v综合ⅴ国产v| 欧美日韩亚洲视频一区| 国产一区二三区| 一区二区三区视频观看| 久久久国产一区二区三区| 欧美日韩国产小视频| 国内精品久久久久久影视8| 99v久久综合狠狠综合久久| 久久精品国语| 国产精品一二| 一区二区三区高清在线观看| 另类天堂视频在线观看| 国产精品日本精品| 亚洲精品永久免费精品| 久久视频免费观看| 国产欧美精品一区aⅴ影院| 亚洲美女免费精品视频在线观看| 久久99在线观看| 国产精品美女主播| 在线一区观看| 欧美日韩免费区域视频在线观看| 狠狠色噜噜狠狠色综合久| 亚洲一区二区三区三| 欧美欧美天天天天操| 在线免费观看日韩欧美| 久久乐国产精品| 国产日韩欧美一区二区三区四区| 99精品免费| 欧美日韩另类丝袜其他| 亚洲精品少妇30p| 欧美成人精品在线观看| 亚洲国产精品久久人人爱蜜臀| 久久久999精品免费| 国产婷婷97碰碰久久人人蜜臀| 亚洲毛片在线观看.| 欧美日本网站| 一本久道久久久| 欧美三级午夜理伦三级中视频| 日韩视频在线观看一区二区| 欧美成人精品| 亚洲日本中文字幕区| 欧美激情亚洲自拍| 韩日精品在线| 亚洲欧美日韩综合| 国产日韩综合一区二区性色av| 亚洲自拍偷拍麻豆| 国产精品一区二区在线| 欧美一区二区福利在线| 激情六月婷婷久久| 欧美国产激情| 在线亚洲欧美视频| 国产精品亚洲综合一区在线观看| 亚洲在线观看| 国内精品福利| 欧美.www| 一区二区三区国产| 国产亚洲成av人片在线观看桃 | 欧美成人久久| 亚洲日韩成人| 国产精品久久二区| 久久久激情视频| 亚洲人在线视频| 国产精品女人毛片| 另类激情亚洲| 亚洲男人天堂2024| 亚洲大胆人体在线| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ入口 | 亚洲欧美不卡| 狠狠久久亚洲欧美| 欧美网站在线观看| 久久精品人人做人人爽电影蜜月| 亚洲国产裸拍裸体视频在线观看乱了| 欧美精品精品一区| 亚洲男人av电影| 91久久在线播放| 国产偷国产偷亚洲高清97cao| 欧美成人在线免费视频| 午夜精品一区二区三区四区| 亚洲人成人一区二区在线观看| 国产精品夜夜嗨| 欧美激情精品久久久久久蜜臀| 亚洲一区欧美二区| 亚洲麻豆一区| 一区二区在线视频播放| 欧美日韩精品在线| 欧美第一黄网免费网站| 久久激情综合| 亚洲欧美日韩在线综合| 日韩亚洲视频| 亚洲电影网站| 国产亚洲电影| 国产欧美一区二区精品秋霞影院| 欧美精品在线观看91| 麻豆精品传媒视频| 久久国产精品久久久| 亚洲欧美一区二区三区在线| 99精品视频免费观看| 亚洲破处大片| 在线观看中文字幕不卡| 国产欧美一区视频| 国产欧美在线| 国产精品视频最多的网站| 欧美视频网址| 欧美色综合网| 欧美日韩第一区| 欧美好骚综合网| 欧美成人国产一区二区| 美日韩丰满少妇在线观看| 久久亚洲电影| 男同欧美伦乱| 欧美日韩成人在线播放| 欧美日韩大片一区二区三区| 欧美日韩国产麻豆| 欧美三区不卡| 国产精品一级二级三级| 欧美日韩一区在线观看| 欧美精品久久一区| 欧美日韩精品一二三区| 欧美午夜免费电影| 国产精品久久久久久久久免费桃花| 欧美日韩国产一级片| 欧美色网一区二区| 国产精品一区二区在线观看| 国产欧美一区二区白浆黑人| 黄色免费成人| 亚洲人成网站777色婷婷| 日韩视频中文| 午夜国产精品视频免费体验区| 欧美一区二区三区视频免费播放| 久久精品中文字幕免费mv| 可以免费看不卡的av网站| 欧美老女人xx| 国产精品日韩精品欧美在线| 国产一区二区三区四区| 亚洲人www| 亚洲一区二区免费| 久久精品一区二区三区不卡牛牛|