亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

目錄
結(jié)論
>基于偏移量和基于光標的分頁之間的主要區(qū)別是什么?
>基于光標的分頁如何處理實時數(shù)據(jù)?基于基于的分頁對于實時數(shù)據(jù)特別有效,因為它使用了最后一個獲取的記錄中使用唯一的標識符(光標)來檢索下一組記錄。這意味著,即使添加了新數(shù)據(jù)或在分頁過程中刪除了現(xiàn)有數(shù)據(jù),光標仍將指向正確的下一個記錄,以確保不會錯過或重復(fù)記錄。可以與任何類型的數(shù)據(jù)一起使用?但是,對于效率至關(guān)重要的實時數(shù)據(jù)或大型數(shù)據(jù)集特別有效。光標可以是任何唯一的標識符,例如時間戳或唯一的ID,可用于獲取下一組記錄。
>如何在我的應(yīng)用程序中實現(xiàn)基于光標的分頁?首先,您需要確定用作光標的唯一標識符。這可能是時間戳,獨特的ID或任何其他獨特的值。接下來,您需要修改數(shù)據(jù)庫查詢以根據(jù)此光標獲取記錄。最后,您需要更新應(yīng)用程序的UI來處理分頁的數(shù)據(jù)并允許用戶在頁面上導(dǎo)航。
>可以將基于光標的分頁用于GraphQl?
>如何在其中使用Slack Slack使用基于光標的分頁。 API?
>基于光標的分頁的JSON API規(guī)范是什么?標識符是光標,并將此光標包括在API響應(yīng)的“鏈接”對象中。這使客戶可以通過遵循提供的鏈接輕松獲取下一組記錄。該規(guī)范提供了一種在JSON API中實現(xiàn)基于光標的分頁的標準,一致的方法。
首頁 后端開發(fā) php教程 用基于光標的分頁登錄實時數(shù)據(jù)

用基于光標的分頁登錄實時數(shù)據(jù)

Feb 20, 2025 am 08:42 AM

用基于光標的分頁登錄實時數(shù)據(jù)

分頁是一種將大型記錄集分解為稱為頁面的較小部分的技術(shù)。作為開發(fā)人員,您應(yīng)該熟悉實施分頁,但是即使對于經(jīng)驗豐富的開發(fā)人員來說,為實時數(shù)據(jù)實施分頁可能會變得棘手。在本教程中,我們將討論實時數(shù)據(jù)分頁和基于光標的分頁的實際用例和解決方案。

鑰匙要點

分頁是一種用于將大記錄集分為較小的部分(稱為頁面)的方法。由于頻繁更新,在添加或刪除數(shù)據(jù)時實施分頁可能會具有挑戰(zhàn)性。

>
    >各種社交網(wǎng)站,例如Twitter和Facebook,已成功實施了實時數(shù)據(jù)分頁。他們使用基于光標的分頁,該分頁依賴于唯一的標識符(光標),而不是分頁的記錄計數(shù)。 基于光標的分頁需要至少一個具有唯一順序值的列,類似于Twitter的MAX_ID參數(shù)或參數(shù)后的Facebook。它還需要一個計數(shù)參數(shù)來過濾有限數(shù)量的結(jié)果,以及下一個和上一個URL才能瀏覽數(shù)據(jù)。 基于光標的分頁通常比基于偏移的分頁更有效,更可靠,尤其是用于實時數(shù)據(jù)或大型數(shù)據(jù)集。它減少了服務(wù)器上的負載,并使分頁過程更快,更高效。
  • >
  • >實現(xiàn)基于光標的分頁涉及幾個步驟,包括確定用作光標的唯一標識符,修改數(shù)據(jù)庫查詢以基于此光標獲取記錄,并更新應(yīng)用程序的UI以處理流行的數(shù)據(jù)并允許用戶來處理用戶瀏覽頁面。
  • 實時數(shù)據(jù)分頁
  • 中識別問題 Wikipedia將實時數(shù)據(jù)定義為收集后立即提供的信息。提供的信息的及時性沒有延遲。 在這樣的應(yīng)用程序中,由于頻繁更新,很難提供準確的分頁數(shù)據(jù)。讓我們看一下在管理實時數(shù)據(jù)時使用標準分頁的問題。
  • >
  • >
  • 假定數(shù)據(jù)是靜態(tài)的,并且不經(jīng)常變化 - 在默認分頁中,檢索到的記錄集被分為許多頁面。由于數(shù)據(jù)并不經(jīng)常更改,用戶覺得分頁正常工作,但是在添加新數(shù)據(jù)或刪除現(xiàn)有數(shù)據(jù)時,分頁的結(jié)果變得不準確。
>

>

分頁僅考慮記錄計數(shù),而不是每個單獨的記錄 - 記錄使用總記錄計數(shù)分為頁面,并正常分頁。它沒有考慮每個記錄是否屬于分頁上的正確頁面。這可以導(dǎo)致記錄的多余顯示。

>

考慮到這些要點,很難用來默認分頁技術(shù)來處理實時數(shù)據(jù)。讓我們嘗試使用實際情況來識別問題。

假設(shè)我們最初有20個記錄,并且我們使用10個記錄作為將記錄分解為頁面的極限。下圖顯示了如何將記錄分成頁面。

>

用基于光標的分頁登錄實時數(shù)據(jù)

>現(xiàn)在假設(shè)在我們在第一頁上時,結(jié)果集由五個新記錄更新。下圖顯示了當前方案。

用基于光標的分頁登錄實時數(shù)據(jù)

>現(xiàn)在我們導(dǎo)航到第二頁。根據(jù)我們的第一張圖像,它應(yīng)從1-10中檢索記錄。但是,將檢索具有數(shù)字15-6的記錄。您可以清楚地看到,第一頁以及第二頁都顯示了記錄數(shù)字15-11。

實時數(shù)據(jù)分頁的實際用例

我們都知道,重新發(fā)明車輪不是開發(fā)人員應(yīng)該做的。我們應(yīng)該研究在考慮建立自己的問題之前解決這些問題的現(xiàn)有網(wǎng)頁技術(shù)。許多社交網(wǎng)站(例如Twitter和Facebook)在其用戶配置文件中提供了實時數(shù)據(jù)。在本節(jié)中,我們將使用一些最受歡迎的網(wǎng)站來研究實時數(shù)據(jù)分頁的實際用例。

> Twitter API光標的分頁

Twitter用戶配置文件經(jīng)常用新的推文填充,因此Twitter時間行數(shù)據(jù)檢索機制應(yīng)該是實時數(shù)據(jù)供稿中識別分頁技術(shù)的良好開始。讓我們看看它是如何使用Twitter API方法的工作方式的。

以下內(nèi)容包含對Twitter API搜索推文方法的示例請求。

在上述URL中,我們請求包含“ PHP”一詞的最新推文,并使用計數(shù)參數(shù)將結(jié)果設(shè)置為10塊。這是偏移分頁的典型行為,我們根據(jù)記錄計數(shù)回復(fù)。但是在這里,我們可以看到兩個距離ind_id和max_id的其他參數(shù),這使基于光標的分頁構(gòu)成。讓我們來看看基于光標的分頁如何使用我們的早期示例。

>

>我們將20個記錄分為2頁,并假設(shè)我們在第一頁上。 5個新記錄被添加到列表的頂部。以下圖像預(yù)覽了當前方案。

https://api.twitter.com/1.1/search/tweets.json?q=php&since_id=24012619984051000&max_id=250126199840518145&result_type=recent&count=10

現(xiàn)在,讓我們看一下Twitter搜索請求的第一頁生成的響應(yīng)的一部分。您可以在此處查看完整的響應(yīng)格式。

https://api.twitter.com/1.1/search/tweets.json?q=php&since_id=24012619984051000&max_id=250126199840518145&result_type=recent&count=10
如您所見,

> search_metadata部分提供了有關(guān)結(jié)果的詳細信息。如果有更多記錄可以分頁,它將生成Next_Results URL。我們主要使用max_id參數(shù)進行分頁。對于每個響應(yīng),我們將檢索max_id參數(shù),我們可以使用它來生成下一個結(jié)果集。我們使用MAX_ID參數(shù)接收比給定ID的更古老的結(jié)果。

>

在我們的示例中,在顯示記錄20-11時,我們應(yīng)該將MAX_ID參數(shù)作為記錄11檢索。然后,我們將MAX_ID傳遞以生成下一個結(jié)果集。因此,我們將獲得準確的結(jié)果,如下圖所示。

。

用基于光標的分頁登錄實時數(shù)據(jù)

如您所見,我們可以通過消除頂部15個記錄而不是基于偏移的分頁上的15個記錄來獲得第二頁的準確結(jié)果。在基于光標的分頁中,我們無法考慮頁面的概念,因為它會迅速變化,因此結(jié)果將被視為上一個或下一個。通常,MAX_ID足夠有效地產(chǎn)生準確的結(jié)果,但是在某些情況下,自_ID以來也是必不可少的,而來回訪問。您可以查看在Twitter的開發(fā)人員部分上同時使用MAX_ID和afta后的_ID的更高級的示例。

基于Facebook API光標的分頁

> 與Twitter相比,F(xiàn)acebook的API實現(xiàn)略有不同,即使兩個API都使用相同的理論。讓我們看一下示例Facebook API請求的響應(yīng)。

>

如您所見,F(xiàn)acebook使用兩個基于字符串的光標,以進行分頁,而不是aft_id and max_id。在Facebook中,前光標將指向頁面的開始,而后光標指向頁面末尾。

大多數(shù)API具有實時數(shù)據(jù)使用此機制,可以通過其結(jié)果準確地劃分。作為開發(fā)人員,我們需要了解基于光標的分頁背后的理論,以便使用現(xiàn)有的API并在必要時創(chuàng)建自己的理論。
"search_metadata": {
  "max_id": 250126199840518145,
  "since_id": 24012619984051000,
  "refresh_url": "?since_id=250126199840518145&q=php&result_type=recent&include_entities=1",

  "next_results": "?max_id=249279667666817023&q=php&count=10&include_entities=1&result_type=recent",

  "count": 10,
  "completed_in": 0.035,
  "since_id_str": "24012619984051000",
  "query": "php",
  "max_id_str": "250126199840518145"
}
實時數(shù)據(jù)建立分頁的基礎(chǔ)

實施實時數(shù)據(jù)分頁是本教程范圍之外的復(fù)雜任務(wù),因此我們將研究基本需求和創(chuàng)建簡單的分頁機制以了解基于光標的分頁的過程。

讓我們使用先前討論的示例來確定基于光標的分頁的基本組成部分。

。

光標 - 我們需要至少具有一個具有唯一順序值的列來實現(xiàn)基于光標的分頁。這可能類似于Twitter的MAX_ID參數(shù)或參數(shù)后的Facebook。

    計數(shù) - 我們需要計數(shù)參數(shù),就像基于偏移的分頁一樣,在光標之前或之后過濾有限數(shù)量的結(jié)果。
  • >

    下一個URL - 如果我們通過API提供分頁,則需要。用戶需要知道下一頁是否可用以及如何獲取下一個數(shù)據(jù)集。

  • 上一個URL - 如果我們通過API提供分頁,則需要。用戶需要知道上一頁是否可用以及如何獲取下一個數(shù)據(jù)集。
  • 這些是基于光標的分頁的基本需求。開發(fā)人員經(jīng)常與基于偏移的分頁合作,很少有機會與基于光標的分頁合作,因此在適當?shù)那闆r下確定每種技術(shù)的差異和好處很重要。

    >>>>>>
  • 在偏移分頁中,我們可以按任何列進行排序并分配結(jié)果,而基于光標的分頁則取決于唯一光標列的分類。

偏移分頁還包含頁碼,除了下一個鏈接和上一個鏈接。但是由于數(shù)據(jù)的高度動態(tài)性質(zhì),我們無法為基于光標的分頁提供頁碼。

    通常,偏移分頁允許我們在兩個方向上導(dǎo)航,而基于光標的分頁大多用于向前導(dǎo)航。
  • 到目前為止,我們研究了基于光標的分頁的基本需求和差異。現(xiàn)在,我們可以進入示例實現(xiàn)以確定其工作原理。

    實現(xiàn)基于光標的分頁

  • 首先,我們使用PDO創(chuàng)建數(shù)據(jù)庫連接。然后,我們執(zhí)行句柄匯輪函數(shù)來插入結(jié)果。 然后,我們檢查MAX_ID或MIN_ID參數(shù)是否可在URL中使用。 MAX_ID與Facebook的參數(shù)相似,并用于向前導(dǎo)航。 MIN_ID與Facebook的參數(shù)相似,并用于向后導(dǎo)航。另外,我們設(shè)置了導(dǎo)航方向,使用max_id或min_id和分類順序的Where子句。

    > 然后,我們執(zhí)行查詢以獲取完整的結(jié)果計數(shù),然后進行相同的查詢,并帶有限制性語句以縮小結(jié)果。
  • >
  • 如果我們朝著先前的方向進行遍歷,則必須將排序更改為ASC。否則,它將檢索最新記錄,而不是上一頁。我們扭轉(zhuǎn)了數(shù)組中的記錄以顯示它們?yōu)橄陆怠?然后,我們循環(huán)通過結(jié)果。循環(huán)時,我們將第一個記錄的ID分配為MIN_ID,最后記錄為MAX_ID。這些光標值用于通過消除重復(fù)來過濾準確的數(shù)據(jù)。 最后,我們可以查看用于實現(xiàn)分頁鏈接的Paginator函數(shù)。

  • 以下代碼包含本節(jié)中生成的分頁的初始化代碼。
https://api.twitter.com/1.1/search/tweets.json?q=php&since_id=24012619984051000&max_id=250126199840518145&result_type=recent&count=10

>現(xiàn)在我們有了一個簡單的數(shù)據(jù)分頁示例,以了解實時數(shù)據(jù)分頁的工作方式。使用此代碼并通過結(jié)果分頁。在登機時,在表末尾添加一些記錄以實時。然后向后和向后鋪設(shè)以檢查頁面中的數(shù)據(jù)重復(fù)。在基于偏移的分頁上做同樣的事情以了解差異。

結(jié)論

在本教程中,我們通過基于光標的分頁了解了實時數(shù)據(jù)分頁背后的理論。讓我們在下面的評論中知道您的想法和經(jīng)驗! 基于光標的分頁

的常見問題(常見問題解答)

>基于偏移量和基于光標的分頁之間的主要區(qū)別是什么?

基于偏移的分頁涉及從一開始就跳過一定數(shù)量的記錄,然后獲取設(shè)定的記錄。但是,如果在分頁上添加或刪除了數(shù)據(jù),此方法可能會導(dǎo)致重復(fù)記錄等問題。另一方面,基于光標的分頁使用從最后一個獲取的記錄中使用唯一的標識符(光標)來檢索下一組記錄。此方法更有效,避免了與基于偏移的分頁相關(guān)的問題,使其非常適合實時數(shù)據(jù)。

>

>基于光標的分頁如何處理實時數(shù)據(jù)?基于基于的分頁對于實時數(shù)據(jù)特別有效,因為它使用了最后一個獲取的記錄中使用唯一的標識符(光標)來檢索下一組記錄。這意味著,即使添加了新數(shù)據(jù)或在分頁過程中刪除了現(xiàn)有數(shù)據(jù),光標仍將指向正確的下一個記錄,以確保不會錯過或重復(fù)記錄??梢耘c任何類型的數(shù)據(jù)一起使用?但是,對于效率至關(guān)重要的實時數(shù)據(jù)或大型數(shù)據(jù)集特別有效。光標可以是任何唯一的標識符,例如時間戳或唯一的ID,可用于獲取下一組記錄。

>基于光標的分頁如何改善性能?基于光標的分頁通過減少需要立即處理的數(shù)據(jù)量來提高性能?;诠鈽说姆猪撝荒塬@取所有記錄,而是跳過一定數(shù)字,而只能根據(jù)光標獲取下一組記錄。這樣可以減少服務(wù)器上的負載,并使分頁過程更快,更高效。

>

>如何在我的應(yīng)用程序中實現(xiàn)基于光標的分頁?首先,您需要確定用作光標的唯一標識符。這可能是時間戳,獨特的ID或任何其他獨特的值。接下來,您需要修改數(shù)據(jù)庫查詢以根據(jù)此光標獲取記錄。最后,您需要更新應(yīng)用程序的UI來處理分頁的數(shù)據(jù)并允許用戶在頁面上導(dǎo)航。

基于Cursor的基于Cursor的分頁的潛在缺陷是什么?分頁比基于偏移的分頁更有效和可靠,它確實具有一些潛在的缺點。例如,實施可能更復(fù)雜,尤其是如果您的數(shù)據(jù)沒有明確的唯一標識符作為光標。此外,它可能不適用于所有用例,例如當您需要跳到特定的頁碼時。

>可以將基于光標的分頁用于GraphQl?

是的,是的,Cursor基于GraphQl可以使用基于基礎(chǔ)的分頁。實際上,GraphQL通過中繼規(guī)范對基于光標的分頁有內(nèi)置支持。這使您可以輕松地在GraphQl應(yīng)用程序中實現(xiàn)高效,可靠的分頁。

>

>基于光標的分頁如何使用MySQL?標識符,例如時間戳或獨特的ID,作為光標。然后,您可以使用“ where”和“ limit”子句來修改SQL查詢以根據(jù)此光標獲取記錄,以指定以獲取的記錄范圍。

>如何在其中使用Slack Slack使用基于光標的分頁。 API?

Slack在其API中使用基于光標的分頁有效獲取大量數(shù)據(jù)。他們使用唯一的標識符作為光標,并在API響應(yīng)中提供此光標,以允許客戶端獲取下一組記錄。這使他們可以處理具有高性能和可靠性的大型數(shù)據(jù)集。

>基于光標的分頁的JSON API規(guī)范是什么?標識符是光標,并將此光標包括在API響應(yīng)的“鏈接”對象中。這使客戶可以通過遵循提供的鏈接輕松獲取下一組記錄。該規(guī)范提供了一種在JSON API中實現(xiàn)基于光標的分頁的標準,一致的方法。

以上是用基于光標的分頁登錄實時數(shù)據(jù)的詳細內(nèi)容。更多信息請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻,版權(quán)歸原作者所有,本站不承擔相應(yīng)法律責任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅(qū)動的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機

Video Face Swap

Video Face Swap

使用我們完全免費的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級代碼編輯軟件(SublimeText3)

熱門話題

Laravel 教程
1597
29
PHP教程
1488
72
PHP變量范圍解釋了 PHP變量范圍解釋了 Jul 17, 2025 am 04:16 AM

PHP變量作用域常見問題及解決方法包括:1.函數(shù)內(nèi)部無法訪問全局變量,需使用global關(guān)鍵字或參數(shù)傳入;2.靜態(tài)變量用static聲明,只初始化一次并在多次調(diào)用間保持值;3.超全局變量如$_GET、$_POST可在任何作用域直接使用,但需注意安全過濾;4.匿名函數(shù)需通過use關(guān)鍵字引入父作用域變量,修改外部變量則需傳遞引用。掌握這些規(guī)則有助于避免錯誤并提升代碼穩(wěn)定性。

如何在PHP中牢固地處理文件上傳? 如何在PHP中牢固地處理文件上傳? Jul 08, 2025 am 02:37 AM

要安全處理PHP文件上傳需驗證來源與類型、控制文件名與路徑、設(shè)置服務(wù)器限制并二次處理媒體文件。1.驗證上傳來源通過token防止CSRF并通過finfo_file檢測真實MIME類型使用白名單控制;2.重命名文件為隨機字符串并根據(jù)檢測類型決定擴展名存儲至非Web目錄;3.PHP配置限制上傳大小及臨時目錄Nginx/Apache禁止訪問上傳目錄;4.GD庫重新保存圖片清除潛在惡意數(shù)據(jù)。

在PHP中評論代碼 在PHP中評論代碼 Jul 18, 2025 am 04:57 AM

PHP注釋代碼常用方法有三種:1.單行注釋用//或#屏蔽一行代碼,推薦使用//;2.多行注釋用/.../包裹代碼塊,不可嵌套但可跨行;3.組合技巧注釋如用/if(){}/控制邏輯塊,或配合編輯器快捷鍵提升效率,使用時需注意閉合符號和避免嵌套。

發(fā)電機如何在PHP中工作? 發(fā)電機如何在PHP中工作? Jul 11, 2025 am 03:12 AM

AgeneratorinPHPisamemory-efficientwaytoiterateoverlargedatasetsbyyieldingvaluesoneatatimeinsteadofreturningthemallatonce.1.Generatorsusetheyieldkeywordtoproducevaluesondemand,reducingmemoryusage.2.Theyareusefulforhandlingbigloops,readinglargefiles,or

撰寫PHP評論的提示 撰寫PHP評論的提示 Jul 18, 2025 am 04:51 AM

寫好PHP注釋的關(guān)鍵在于明確目的與規(guī)范,注釋應(yīng)解釋“為什么”而非“做了什么”,避免冗余或過于簡單。1.使用統(tǒng)一格式,如docblock(/*/)用于類、方法說明,提升可讀性與工具兼容性;2.強調(diào)邏輯背后的原因,如說明為何需手動輸出JS跳轉(zhuǎn);3.在復(fù)雜代碼前添加總覽性說明,分步驟描述流程,幫助理解整體思路;4.合理使用TODO和FIXME標記待辦事項與問題,便于后續(xù)追蹤與協(xié)作。好的注釋能降低溝通成本,提升代碼維護效率。

快速PHP安裝教程 快速PHP安裝教程 Jul 18, 2025 am 04:52 AM

ToinstallPHPquickly,useXAMPPonWindowsorHomebrewonmacOS.1.OnWindows,downloadandinstallXAMPP,selectcomponents,startApache,andplacefilesinhtdocs.2.Alternatively,manuallyinstallPHPfromphp.netandsetupaserverlikeApache.3.OnmacOS,installHomebrew,thenrun'bre

如何通過php中的索引訪問字符串中的字符 如何通過php中的索引訪問字符串中的字符 Jul 12, 2025 am 03:15 AM

在PHP中獲取字符串特定索引字符可用方括號或花括號,但推薦方括號;索引從0開始,超出范圍訪問返回空值,不可賦值;處理多字節(jié)字符需用mb_substr。例如:$str="hello";echo$str[0];輸出h;而中文等字符需用mb_substr($str,1,1)獲取正確結(jié)果;實際應(yīng)用中循環(huán)訪問前應(yīng)檢查字符串長度,動態(tài)字符串需驗證有效性,多語言項目建議統(tǒng)一使用多字節(jié)安全函數(shù)。

學習PHP:初學者指南 學習PHP:初學者指南 Jul 18, 2025 am 04:54 AM

易于效率,啟動啟動tingupalocalserverenverenvirestoolslikexamppandacodeeditorlikevscode.1)installxamppforapache,mysql,andphp.2)uscodeeditorforsyntaxssupport.3)

See all articles