欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品

主頁 > 知識庫 > 什么是瞬態API?

什么是瞬態API?

熱門標簽:慶陽四川外呼系統 機器人電銷提升客戶滿意度 ai警察電話機器人 長沙三五防封電銷卡 淄博地圖標注員 地圖標注銷售故事 玩轉地圖標注 山西地圖標注店 地圖標注服務系統
摘要

最后修改:2020年8月18日閱讀時間:觀點網站的性能通常圍繞緩存的概念展開:將數據存儲在就緒且可快速訪問的狀態下,以便瀏覽器更快地復制它。WordPressTransientsAPI是用于緩存的工具,以及一種提高WordPress網站性能的強大方法。每當瀏覽器請求網頁時,服務服務器必須進行許多復雜且耗時的計算,導致延誤。執行查詢后,得益于緩

  • 自動刪除
  • 手動刪除
  • 遠程API響應
  • 本地API響應
  • 基本用法
  • 基本范例
  • 更復雜的例子
目錄 最后修改: 2020年8月18日 閱讀時間: 觀點

網站的性能通常圍繞緩存的概念展開:將數據存儲在就緒且可快速訪問的狀態下, 以便瀏覽器更快地復制它。 WordPress Transients API是用于緩存的工具, 以及一種提高WordPress網站性能的強大方法。

每當瀏覽器請求網頁時, 服務服務器必須進行許多復雜且耗時的計算, 導致延誤。 執行查詢后, 得益于緩存技術, 服務器可以記住最終結果,并且在第二次請求時, 將其提供給瀏覽器,而無需再次進行相同的計算。 所以, 緩存和重用早期資源的能力對于優化性能至關重要。

非常簡單的緩存提供了將信息臨時存儲在緩存層中的選項。

緩存有不同的類型,結合使用它們, 您將獲得更高的性能水平。

在打開網頁內容之前, 您的瀏覽器需要一堆東西,例如JavaScript文件, 樣式表, 字體, 等等 除了頁面內容外,它還會下載所有這些內容。

如果瀏覽器緩存了這些文件, 每次加載網站時都無需下載它們。 首次加載該網站通常需要幾秒鐘, 但是在瀏覽器緩存了這些文件之后, 加載時間大大減少。

服務器緩存是指為特定頁面保存HTML文件,并在隨后的每個請求中使用。 這就是所謂的全頁緩存。

服務器緩存還有另一種類型-對象緩存, 哪個, 與全頁緩存不同, 僅緩存某些信息(片段)。

被認為是最有效的緩存。 它的名稱對它的工作方式不言而喻。 當用戶“ A”訪問網頁時, 網站將對其進行構建,并將其內容返回給用戶的瀏覽器。 在頁面緩存運行的情況下, 保存此頁面內容,以便當用戶“ B”訪問同一頁面時, 頁面緩存會重現以前發送的內容。

頁面緩存的最大優點是,緩存的頁面幾乎在訪問時返回。 因此, 即使在性能最差,CPU使用率最低的最弱服務器上,也要處理數百萬個請求并重現頁面。

但是這種類型的緩存也有其缺點:例如, 無法為授權用戶緩存頁面, 或針對其頁面內容取決于當前用戶變量的用戶。

數據庫緩存是計算機應用程序設計中包含的過程,該過程通過訪問后端數據庫按需(動態)生成網頁。 數據庫緩存通過消除不必要的壓力來增強主數據庫, 通常以經常訪問的讀取數據的形式。 緩存本身可以在多個區域中運行,包括您的數據庫, 應用程序或作為獨立層。

當這些應用程序部署在涉及基于瀏覽器的客戶端的多層環境中時, Web應用程序服務器和后端數據庫, 中間層數據庫緩存用于實現高可伸縮性和性能。

WordPress中的對象緩存(對象緩存)涉及存儲數據庫查詢。 它是一種內置的系統機制,可讓您保存任何類型的數據(對象)并在必要時進行檢索。 該緩存用于存儲復雜操作的結果。

在您的WordPress網站上啟用后, 它有助于加快PHP執行時間, 更快地向網站訪問者提供內容, 并減少數據庫的負載。

它是一個地理上分散的網絡基礎結構,可向Web服務和站點的用戶提供快速的內容交付。 CDN中包含的服務器在地理位置上以使站點/服務用戶的響應時間最小的方式定位。

瞬態API是存儲信息塊(代碼串, HTML內容 WP_Query對象, 網站的數據庫中的JSON),而不是瀏覽器緩存。 Transients API與Options API非常相似, 但主要區別在于Transients API 有到期時間 或更好的說壽命。

瞬態的三個主要操作是 設定值, 獲得價值 和刪除值

set_transient($ key, $ value, $ expires);

要設置瞬態,可以使用set_transient()函數,該函數包含三個組件:

  • 鑰匙 –瞬態的短唯一名稱。 長度不得超過172個字符。
  • 價值 –包含將存儲在數據庫中的信息的任何類型的PHP變量。
  • 到期時間(壽命)– 信息將存儲的時間量。

因此,例如,如果我們要保存一天的列表帖子查詢,請執行以下操作:

set_transient('unique_listing_posts_query_results_name', 
$ listing_posts_query_results, DAY_IN_SECONDS);

如您所見,我們使用了WordPress 3中引入的幾種(DAY_IN_SECONDS)時間常數。5,輕松表達時間。 這是所有時間常數的完整列表:

MINUTE_IN_SECONDS= 60(秒)
HOUR_IN_SECONDS = 60 * MINUTE_IN_SECONDS
DAY_IN_SECONDS  = 24 * HOUR_IN_SECONDS
WEEK_IN_SECONDS = 7 * DAY_IN_SECONDS
MONTH_IN_SECONDS = 30 * DAY_IN_SECONDS
YEAR_IN_SECONDS = 365 * DAY_IN_SECONDS
get_transient($ key);

為了獲得一個保存的瞬態,我們可以使用

get_transient($ transient_name);

在我們的情況下,我們可以通過以下方式獲取列出查詢結果的帖子:

get_transient( 'unique_listing_posts_query_results_name' );

在后面的示例部分中,我們將對此進行詳細介紹。

delete_transient($ key);

正如我們在前面的小節中所解釋的,我們可以使用Transients API來獲取和存儲對數據庫的遠程或本地(內容或來自數據庫的查詢)響應。

然而, 這是一個問題 我們如何刪除舊的存儲內容(瞬態)。 有兩種清除(刪除)瞬態的方法:

自動刪除

關于瞬態的很酷的事情是,如果我們 設置到期時間(壽命)。 如果您試圖在瞬態過期后從數據庫中檢索瞬態, WordPress會自動將其刪除, 防止任何混亂。一旦有人打開網站,瞬態將被重新創建。 這樣,我們可以確保從遠程或本地API獲得新鮮的內容。

手動刪除

有時,我們需要通過手動刪除瞬變來強制其過早死亡。 在進行給定活動(添加新菜單項, 保存或更新帖子, 添加或更新類別等)將使緩存的數據本來就過時并且需要更新:

我們必須使用的功能是

delete_transient($ transient_name)

在我們的情況下應該是:

delete_transient( 'unique_listing_posts_query_results_name' );

筆記: 重要的是不要使用瞬態來存儲無法重新創建的有價值的數據!

只要我們的計算密集型值不經常更改并且想要緩存,就可以使用Transients API。 在WordPress中, 這通常是數據庫查詢的結果對象, 但實際上可以是您存儲在變量中的任何內容, 是否為標量值, 數組或對象。

因此,當您在主題和插件中執行復雜的查詢時,所有瞬變都是很棒的。

遠程API響應

遠程API始終會對遠程服務器進行多次調用或請求,并且存在一些額外的延遲。 這會花費時間并導致延遲。 還, 一些遠程API可能有速率限制, 表示您可以在給定的時間內達到最大請求數限制。

如您所知, 我們可以利用Transients API來緩存來自遠程服務器的響應(結果)并將其存儲在我們的數據庫中。 現在我們可以使用

get_transient();

方法,并在需要時顯示存儲的(緩存的)結果/內容,而無需進行其他遠程調用或請求。

所有這些將:

  • 減少遠程HTTPS調用和請求
  • 減少CPU服務器使用率
  • 縮短網站頁面加載時間
本地API響應

–基本上是數據庫的HTML或查詢結果。 您不僅可以將Transients API用于緩存遠程響應,還可以將HTML內容或查詢結果存儲在本地數據庫中。 如果您想在網站上顯示可重復的HTML部分(小部件, 滑塊, 菜單 等等。),或者只是為了防止每次有人訪問您的網站時觸發復雜或緩慢的數據庫查詢。

  • 復雜和自定義的數據庫查詢
  • WordPress導航菜單
  • 側欄小部件,顯示信息,例如; 鳴叫, 最近的網站訪問者列表或特定類別的帖子列表
  • 緩存標簽云
  • 緩存外部HTTP請求

經過如此多的解釋,現在該是一個真實的例子了。

基本用法
函數get_my_data(){

$ data = get_transient('my_transient_name');

if(false === $ data){//瞬態已過期/尚未設置

$ data = fetch_my_data(); //從原始來源提取數據

set_transient('my_transient_name', $ data, HOUR_IN_SECONDS);

}

返回$ data;

}

fetch_my_data() 功能可以存儲 WP_Query對象, json數據, html內容, 等等。

基本范例

正如我們已經解釋的那樣,這種類型的緩存非常適合保存長時間操作的結果, 最簡單的示例是訪問外部API, 例如Facebook。

假設我們具有以下功能, 可以訪問Facebook API, 請求一個對象(更確切地說, 頁面)您的網站。url并返回該頁面的點贊次數:

function get_facebook_likes() {

$ result = wp_remote_get('https:// graph。Facebook。com /您的網站。url');

$ result = json_decode(wp_remote_retrieve_body($ result));

返回$ result->喜歡

}

回顯“ Facebook喜歡:”。 get_facebook_likes();

此函數的執行時間取決于許多因素, 包括您的服務器相對于Facebook服務器的位置, 狀態, 和網絡的速度, 等等。 一般, 一個功能可能需要1-3秒。

這意味著在網站上使用此功能時, 每頁的加載時間將增加1-3秒。 而且, 如果我們在500秒內調用此函數500次以上, Facebook將開始生成錯誤而不是結果。

為了加快此功能, 我們可以使用WordPress Transients API并將結果保存1小時:

function get_facebook_likes() {
if ( false===( $likes=get_transient( 'fb_likes' ) ) ) {
$ result = wp_remote_get('https:// graph。Facebook。com /您的網站。url');
$ result = json_decode(wp_remote_retrieve_body($ result));
$ likes = $ result->喜歡

//將瞬態設置為一個小時(以秒為單位)
set_transient('fb_likes', $贊, 1 * HOUR_IN_SECONDS);
}

返回$ likes;
}

因此, 第一次調用此函數時, 收到Facebook的請求后, WordPress會將結果寫入數據庫,將來將在一個小時內從數據庫返回此結果,而無需向Facebook服務器重復請求。 一個小時后, 該功能將再次轉到Facebook獲取數據。

通過這種方法, 每小時只有一次對此功能的調用將使請求時間增加1-3秒, 隨后的電話將立即發出。

更復雜的例子

想象一下,我們有一個包含大約100個類別和大約50000個帖子的網站, 在網站的單個帖子設計中,我們有一個小部件,可顯示當前帖子所在類別中的N個相關帖子。 不出所料 這個復雜的查詢需要一些時間才能從數據庫中獲取結果并將其顯示在網站上。

現在,假設您有10,000個用戶同時訪問該網站。 這意味著我們將有10,000多個數據庫請求必須執行查詢(這是一個復雜的查詢,因為它將搜索整個數據庫wp_terms, wp_term_relationships, wp_term_taxonomy, wp_posts表,因此他們有超過1萬個查詢), 從相關類別中獲取N條帖子的結果,并將其顯示在前端。 這, 反過來, 會使數據庫超載并延遲網站的整體加載時間, 在某些情況下,甚至由于數據庫超載而使它崩潰。

接下來的問題是如何優化和減少數據庫查詢和請求的數量。 為什么每次我們都可以利用Transients API并僅緩存查詢對象或緩存整個HTML輸出時,都有這么多查詢? 這樣,我們將減少和優化數據庫查詢的數量, 這將帶來更好的網站性能和更好的用戶體驗。

在我們的情況下,查詢將在 wp_terms, wp_term_relationships, wp_term_taxonomy, wp_posts表 獲得所有預期的結果。

這是我們如何完成此操作的完整示例:

function show_posts_from_category() {
$ args = array(
'貓'=> 555, //隨機類別ID
'posts_per_page'=> 8, //隨機顯示相關帖子
'No_found_rows'=> 真的,
);

$hash=md5( $args['cat'] ); //類別ID的MD5哈希
$ transient_key ='category-'。 $ hash; //瞬態鍵

if(false ===(($ posts_from_category_html = get_transient($ transient_key))))://瞬變已過期/尚未設置

$ the_query =新的WP_Query($ args); //獲取查詢

ob_start(); //打開輸出緩沖

而($ the_query->have_posts()):$ the_query->the_post();
?>
div class =“ item”>
div class =“ bigthumb”>
href =“ https:// devrix。com / tutorial / transients-api /?PHP的the_permalink();?>“ rel =” bookmark“ title =”?PHP的the_title();?>”> ?PHP的如果(has_post_thumbnail())the_post_thumbnail('big-thumb');?>/一種>
/ div>
33>href =“ https:// devrix。com / tutorial / transients-api /?PHP的the_permalink();?>“ rel =” bookmark“ title =”?PHP的the_title();?>”>?PHP的the_title();?>/一種>/小時3>
?PHP的the_excerpt();?>
/ div>
?的PHP
結束

$ post_from_category_html = ob_get_contents(); //獲取輸出緩沖區的內容而不清除它
ob_end_clean(); //關閉此輸出緩沖

set_transient($ transient_key, $ posts_from_category_html, $ transient_expire = 15 * MINUTE_IN_SECONDS); //將瞬態設置為15分鐘的到期時間

wp_reset_postdata();
萬一;

返回$ post_from_category_html;
}

緩存是加快處理速度的好方法, 但您必須確切知道要緩存的內容, 在哪里可以做, 何時何地, 否則,您將面臨面臨意外后果的風險。

如果您不確定某項功能是否按預期工作, 總是轉向分析-查看針對數據庫的每個查詢, 查看所有PHP函數調用, 時間和內存使用情況。

Transients API是優化WordPress網站的加載時間并提供出色的用戶體驗的好方法。 在插件和主題中使用瞬態很簡單,僅增加了幾行代碼。 如果在正確的情況下(例如長數據庫查詢或復雜的處理數據)使用它,可以節省站點上的加載時間幾秒鐘。

DevriX是一家提供全方位服務的WordPress開發機構。 我們不僅提供Web開發服務,而且還提供專家團隊,可以為您建立在線形象的每個步驟提供建議。

開始吧
瀏覽更多:開發WordPress開發

Vladislav是DevriX的后端開發人員,并且是WordPress核心貢獻者。 他擁有10多年的開發經驗,但每天都在努力應對新挑戰,以提高自己的開發技能。 在他空閑的時候, 他跟隨他最喜歡的電視連續劇, 與朋友一起踢足球,并與家人共度時光。

標簽:榆林 常德 武漢 新鄉 朔州 麗江 寧夏 喀什

巨人網絡通訊聲明:本文標題《什么是瞬態API?》,本文關鍵詞  什么,是,瞬態,API,什么,是,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《什么是瞬態API?》相關的同類信息!
  • 本頁收集關于什么是瞬態API?的相關信息資訊供網民參考!
  • 推薦文章
    欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品
  • <rt id="w000q"><acronym id="w000q"></acronym></rt>
  • <abbr id="w000q"></abbr>
    <rt id="w000q"></rt>
    韩国av中国字幕| 91制片厂在线| 欧美三级一区二区| 国产精品乱码久久久久久| 美女一区二区在线观看| 美女扒开腿免费视频| 欧美系列亚洲系列| 亚洲精品少妇30p| aaa欧美日韩| 成年人午夜剧场| 国产精品第五页| 成人免费电影视频| 国语对白在线播放| 亚洲免费观看高清在线观看| youjizz国产精品| 色丁香久综合在线久综合在线观看| 国产精品美女久久久久av爽李琼| 国产999精品久久久久久| 秋霞欧美一区二区三区视频免费| 国产亚洲精品超碰| 国产成人一区二区精品非洲| 国内毛片毛片毛片毛片毛片| 国产精品视频一二三区| 不卡的av网站| 日韩网站在线播放| 91精品国产丝袜白色高跟鞋| 天天综合天天综合色| 中文字幕xxx| 久久亚洲精品国产精品紫薇 | 色婷婷久久综合| 国产精品色哟哟| 久久精品国产澳门| 中文子幕无线码一区tr| 国产精品自拍三区| 久久久久99精品成人片试看| 亚洲男人天堂av网| 国产情侣久久久久aⅴ免费| 宅男噜噜噜66一区二区66| 日本不卡一区二区| av片在线免费看| **欧美大码日韩| 中文字幕制服丝袜一区二区三区| aaa亚洲精品| 日韩一区二区免费在线观看| 久久精品国产精品亚洲综合| 午夜成人亚洲理伦片在线观看| 中文字幕一区二区三中文字幕| 男生和女生一起差差差视频| 欧美一级一区二区| 国产美女在线观看一区| 日本精品一区二区三区四区的功能| 亚洲国产精品麻豆| 少妇精品无码一区二区免费视频| 国产精品国产精品国产专区不蜜| 日韩精品xxx| 精品国产区一区| k8久久久一区二区三区| 3atv一区二区三区| 国产福利一区二区| 欧美日韩国产经典色站一区二区三区 | 一区二区三区四区乱视频| 中文字幕一区三区久久女搜查官| 国产午夜久久久久| 91蜜桃在线观看| 精品88久久久久88久久久| 懂色av一区二区三区免费看| 欧美日产国产精品| 国产精品一级片在线观看| 欧美三级中文字| 国产伦精品一区二区三区免费| 在线观看一区不卡| 美女脱光内衣内裤视频久久影院| 艳母动漫在线看| 美日韩一区二区| 欧美性videosxxxxx| 国内外成人在线视频| 欧美色图12p| 国产精品91一区二区| 91精品久久久久久久91蜜桃| 国产成人免费在线视频| 91精品国产色综合久久不卡电影 | 免费看一级大片| 日本大胆欧美人术艺术动态 | 极品久久久久久| 亚洲444eee在线观看| 26uuu成人网| 久久97超碰国产精品超碰| 欧美视频在线不卡| 成人一级视频在线观看| 日韩视频一区二区三区| 91无套直看片红桃| 国产情人综合久久777777| 久久久久9999| 一区二区三区在线免费视频| 国产又粗又猛又爽又黄的视频小说| 婷婷一区二区三区| 欧美自拍偷拍午夜视频| 国产成人在线视频网址| 欧美成va人片在线观看| 久久国产精品99精品国产| 欧美中文字幕久久| 丁香六月综合激情| 久久色在线观看| 黄色网址在线视频| 夜夜夜精品看看| 色诱亚洲精品久久久久久| 国产美女娇喘av呻吟久久| 日韩女优av电影| 野战少妇38p| 伊人一区二区三区| 人妻少妇精品一区二区三区| 国产精品中文字幕一区二区三区| 精品美女被调教视频大全网站| 波多野结衣办公室双飞| 亚洲欧美一区二区三区国产精品 | 国产丝袜欧美中文另类| 37p粉嫩大胆色噜噜噜| 偷窥国产亚洲免费视频| 911精品国产一区二区在线| 99riav久久精品riav| 中文字幕色av一区二区三区| 开心激情五月网| 国产大陆a不卡| 中文字幕乱码日本亚洲一区二区| 99国产精品免费| 激情久久久久久久久久久久久久久久| 欧美一区午夜精品| 欧美夫妇交换xxx| 中文字幕 久热精品 视频在线| 精品人体无码一区二区三区| 韩国理伦片一区二区三区在线播放| jizzjizz日本少妇| 国内精品视频一区二区三区八戒 | 日韩一区二区三区视频| 美女黄色一级视频| 婷婷中文字幕综合| 日韩欧美在线不卡| 李宗瑞91在线正在播放| 另类小说色综合网站| 欧美精品一区二区三区高清aⅴ | av在线播放网址| 日韩在线播放一区二区| 日韩亚洲电影在线| a天堂中文字幕| 国产一区二区三区美女| 国产欧美日韩不卡| 国产精品无码99re| 精品人妻一区二区三| 亚洲成人午夜电影| 日韩午夜激情视频| 手机看片福利视频| 粉嫩欧美一区二区三区高清影视| 中文字幕在线不卡一区二区三区| 日本高清无吗v一区| 国产成人av片| 日韩福利电影在线观看| 久久综合久久综合九色| 成年人网站在线观看视频| a级精品国产片在线观看| 亚洲一区二区三区视频在线| 欧美一区二区三区在| 色欲AV无码精品一区二区久久| 国产精品一区二区不卡| 亚洲色图都市小说| 91精品国产综合久久福利| 亚洲ⅴ国产v天堂a无码二区| 成人性视频免费网站| 亚洲激情在线播放| 日韩免费电影一区| 午夜激情福利电影| wwwww在线观看| 久久国产视频网| 中文字幕一区二区三区四区不卡 | 国产在线播精品第三| 椎名由奈av一区二区三区| 欧美精品日韩一区| 九九九视频在线观看| 97成人超碰视| 免费成人深夜小野草| 国产精品高潮久久久久无| 6080亚洲精品一区二区| 91香蕉国产视频| 在线观看亚洲免费视频| 国产一区二区三区免费在线观看| 亚洲另类中文字| 亚洲精品一区在线观看| 在线视频欧美区| 免费视频91蜜桃| 中文字幕1区2区| 国产米奇在线777精品观看| 亚洲一线二线三线视频| 久久综合久久鬼色中文字| 在线观看日韩电影| 蜜桃无码一区二区三区| 91欧美一区二区| 激情伊人五月天久久综合| 一区二区三区不卡在线观看| 久久久另类综合| 欧美丰满美乳xxx高潮www| 美女视频久久久|