jQuery ajax() 函數(shù)是最低級(jí)別的抽象
jQuery ajax()
函數(shù)是可用于 XMLHttpRequest(又名 AJAX)的最低抽象級(jí)別。所有其他 jQuery AJAX 函數(shù)(例如 load()
)都利用 ajax()
函數(shù)。使用 ajax()
函數(shù)為 XMLHttpRequests
提供了最強(qiáng)大的功能。 jQuery 還提供了其他更高級(jí)別的抽象來(lái)執(zhí)行非常特定類型的 XMLHttpRequests
。這些函數(shù)本質(zhì)上是 ajax()
方法的快捷方式。
這些快捷方法是:
加載()
<code>get()
<code>getJSON()
<code>getScript()
<code>post()
需要注意的是,雖然快捷方式有時(shí)很好,但它們都在幕后使用 ajax()
。而且,當(dāng)您需要 jQuery 在 AJAX 方面提供的所有功能和自定義功能時(shí),您應(yīng)該使用 ajax()
方法。
注意:默認(rèn)情況下,ajax()
和 load()
AJAX 函數(shù)均使用 GET
HTTP 協(xié)議。
jQuery 支持跨域 JSONP
帶有填充的 JSON (JSONP) 是一種技術(shù),允許 HTTP 請(qǐng)求(返回 JSON)的發(fā)送者為使用 JSON 對(duì)象作為函數(shù)參數(shù)進(jìn)行調(diào)用的函數(shù)提供名稱。該技術(shù)不使用 XHR。它使用腳本元素,因此可以將數(shù)據(jù)從任何站點(diǎn)拉入任何站點(diǎn)。目的是為了規(guī)避XMLHttpRequest的同源策略限制。
使用 <code>getJSON() jQuery 函數(shù),當(dāng) URL 中添加 JSONP 回調(diào)函數(shù)時(shí),您可以從另一個(gè)域加載 JSON 數(shù)據(jù)。作為示例,以下是使用 Flickr API 的 URL 請(qǐng)求的樣子。
<span class="sgc-100">http://api.flickr.com/services/feeds/photos_public.gne?tags=resig&tagmode=all&format=json&jsoncallback</span>
=?
?
值用作快捷方式,告訴 jQuery 調(diào)用作為 ?
值用作快捷方式,告訴 jQuery 調(diào)用作為 <code>getJSON() 函數(shù)的參數(shù)傳遞的函數(shù)。如果您不想使用此快捷方式,可以將 ?
函數(shù)的參數(shù)傳遞的函數(shù)。如果您不想使用此快捷方式,可以將 ?
替換為另一個(gè)函數(shù)的名稱。
下面,我使用 Flickr JSONP API 拉入一個(gè)網(wǎng)頁(yè),其中包含帶有“resig”標(biāo)簽的最新照片。請(qǐng)注意,我使用的是 ?
快捷方式,因此 jQuery 將簡(jiǎn)單地調(diào)用我提供的 ?
快捷方式,因此 jQuery 將簡(jiǎn)單地調(diào)用我提供的 <code>getJSON() 函數(shù)的回調(diào)函數(shù)。傳遞給回調(diào)函數(shù)的參數(shù)是請(qǐng)求的JSON數(shù)據(jù)。
<!DOCTYPE html> <html lang="en"> <body> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> <script> (function($){ $.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?tags=resig&tagmode=all&format=json&jsoncallback=?", // Using ? just means call the callback function provided function (data) { // Data is the JSON object from Flickr $.each(data.items, function (i, item) { $('<img />').attr("src", item.media.m).appendTo('body'); if (i == 30) return false; }); }); })(jQuery); </script> </body> </html>
注意:請(qǐng)確保檢查您所使用的服務(wù)的 API 以便正確使用回調(diào)。例如,F(xiàn)lickr 使用名稱 jsoncallback=?
,而 Yahoo!和 Digg 使用名稱 callback=?
。
停止瀏覽器緩存 XHR 請(qǐng)求
執(zhí)行 XHR 請(qǐng)求時(shí),Internet Explorer 將緩存響應(yīng)。如果響應(yīng)包含具有較長(zhǎng)保質(zhì)期的靜態(tài)內(nèi)容,則緩存可能是一件好事。但是,如果請(qǐng)求的內(nèi)容是動(dòng)態(tài)的并且可能隨時(shí)發(fā)生變化,您將需要確保瀏覽器不會(huì)緩存該請(qǐng)求。一種可能的解決方案是將唯一的查詢字符串值附加到 URL 的末尾。這將確保瀏覽器對(duì)于每個(gè)請(qǐng)求請(qǐng)求唯一的 URL。
// Add unique query string at end of the URL url: 'some?nocache='+(newDate()).getTime()
另一個(gè)解決方案(更多的是全局解決方案)是默認(rèn)設(shè)置所有 AJAX 請(qǐng)求以包含我們剛才討論的無(wú)緩存邏輯。為此,請(qǐng)使用 ajaxSetup
函數(shù)全局關(guān)閉緩存。
$.ajaxSetup({ cache: false // True by default. False means caching is off. });
現(xiàn)在,為了用單獨(dú)的 XHR 請(qǐng)求覆蓋此全局設(shè)置,您只需在使用 ajax()
函數(shù)時(shí)更改緩存選項(xiàng)即可。下面是使用 ajax()
函數(shù)執(zhí)行 XHR 請(qǐng)求的代碼示例,該函數(shù)將覆蓋全局設(shè)置并緩存請(qǐng)求。
$.ajaxSetup ({ cache: false // True by default. False means caching is off. }); jQuery.ajax({ cache: true, url: 'some', type: 'POST' } );
以上是jQuery 簡(jiǎn)化指南:探索 jQuery 和 Ajax的詳細(xì)內(nèi)容。更多信息請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

熱AI工具

Undress AI Tool
免費(fèi)脫衣服圖片

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

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

Clothoff.io
AI脫衣機(jī)

Video Face Swap
使用我們完全免費(fèi)的人工智能換臉工具輕松在任何視頻中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費(fèi)的代碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
功能強(qiáng)大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6
視覺(jué)化網(wǎng)頁(yè)開發(fā)工具

SublimeText3 Mac版
神級(jí)代碼編輯軟件(SublimeText3)

WordPress導(dǎo)致服務(wù)器CPU使用率飆升的主要原因包括插件問(wèn)題、數(shù)據(jù)庫(kù)查詢效率低、主題代碼質(zhì)量差或流量激增。1.首先通過(guò)top、htop或控制面板工具確認(rèn)是否為WordPress引起的高負(fù)載;2.進(jìn)入故障排查模式逐步啟用插件排查性能瓶頸,使用QueryMonitor分析插件執(zhí)行情況并刪除或替換低效插件;3.安裝緩存插件、清理冗余數(shù)據(jù)、分析慢查詢?nèi)罩疽詢?yōu)化數(shù)據(jù)庫(kù);4.檢查主題是否存在過(guò)度加載內(nèi)容、復(fù)雜查詢或缺乏緩存機(jī)制等問(wèn)題,建議用標(biāo)準(zhǔn)主題測(cè)試對(duì)比并優(yōu)化代碼邏輯。按照上述步驟逐一排查可定位并解

MinifyingJavaScript文件可通過(guò)刪除空白、注釋和無(wú)用代碼來(lái)提升WordPress網(wǎng)站加載速度。1.使用支持合并壓縮的緩存插件如W3TotalCache,在“Minify”選項(xiàng)中啟用并選擇壓縮模式;2.使用專用壓縮插件如FastVelocityMinify,提供更精細(xì)控制;3.手動(dòng)壓縮JS文件并通過(guò)FTP上傳,適用于熟悉開發(fā)工具的用戶。注意部分主題或插件腳本可能與壓縮功能沖突,啟用后需徹底測(cè)試網(wǎng)站功能。

優(yōu)化WordPress站點(diǎn)不依賴插件的方法包括:1.使用輕量級(jí)主題,如Astra或GeneratePress,避免功能堆砌的主題;2.手動(dòng)壓縮和合并CSS、JS文件,減少HTTP請(qǐng)求;3.上傳前優(yōu)化圖片,使用WebP格式并控制文件大小;4.配置.htaccess啟用瀏覽器緩存,并接入CDN提升靜態(tài)資源加載速度;5.限制文章修訂版本并定期清理數(shù)據(jù)庫(kù)冗余數(shù)據(jù)。

防止評(píng)論垃圾信息最有效的方式是通過(guò)程序化手段自動(dòng)識(shí)別并攔截。1.使用驗(yàn)證碼機(jī)制(如GooglereCAPTCHA或hCaptcha)可有效區(qū)分人類與機(jī)器人,尤其適合公眾網(wǎng)站;2.設(shè)置隱藏字段(Honeypot技術(shù)),利用機(jī)器人自動(dòng)填寫特性識(shí)別垃圾評(píng)論,不影響用戶體驗(yàn);3.檢查評(píng)論內(nèi)容關(guān)鍵詞黑名單,通過(guò)敏感詞匹配過(guò)濾垃圾信息,需注意避免誤判;4.判斷評(píng)論頻率與來(lái)源IP,限制單位時(shí)間內(nèi)的提交次數(shù)并建立黑名單;5.使用第三方反垃圾服務(wù)(如Akismet、Cloudflare)提升識(shí)別準(zhǔn)確性??筛鶕?jù)網(wǎng)站

TransientsAPI是WordPress中用于臨時(shí)存儲(chǔ)可自動(dòng)過(guò)期數(shù)據(jù)的內(nèi)置工具,其核心函數(shù)為set_transient、get_transient和delete_transient。相比OptionsAPI,transients支持設(shè)置生存時(shí)間(TTL),適合緩存API請(qǐng)求結(jié)果、復(fù)雜計(jì)算數(shù)據(jù)等場(chǎng)景。使用時(shí)需注意key命名唯一性與命名空間、緩存“懶刪除”機(jī)制及對(duì)象緩存環(huán)境下可能不持久的問(wèn)題。典型應(yīng)用場(chǎng)景包括減少外部請(qǐng)求頻率、控制代碼執(zhí)行節(jié)奏和提升頁(yè)面加載性能。

在開發(fā)Gutenberg塊時(shí),正確enqueue資產(chǎn)的方法包括:1.使用register_block_type指定editor_script、editor_style和style的路徑;2.在functions.php或插件中通過(guò)wp_register_script和wp_register_style注冊(cè)資源,并設(shè)置正確的依賴和版本;3.配置構(gòu)建工具輸出合適的模塊格式,并確保路徑一致;4.通過(guò)add_theme_support或enqueue_block_assets控制前端樣式的加載邏輯,確保

要添加自定義用戶字段需根據(jù)平臺(tái)選擇擴(kuò)展方式并注意數(shù)據(jù)驗(yàn)證與權(quán)限控制。常見做法包括:1.利用數(shù)據(jù)庫(kù)額外表或鍵值對(duì)結(jié)構(gòu)存儲(chǔ)信息;2.在前端加入輸入框并與后端集成;3.對(duì)敏感數(shù)據(jù)進(jìn)行格式校驗(yàn)和訪問(wèn)權(quán)限限制;4.更新接口及模板以支持新字段展示與編輯,同時(shí)兼顧移動(dòng)端適配和用戶體驗(yàn)。

在WordPress中添加自定義重寫規(guī)則的關(guān)鍵在于使用add_rewrite_rule函數(shù)并確保規(guī)則正確生效。1.使用add_rewrite_rule注冊(cè)規(guī)則,格式為add_rewrite_rule($regex,$redirect,$after),其中$regex是正則表達(dá)式匹配URL,$redirect指定實(shí)際查詢,$after控制規(guī)則位置;2.需通過(guò)add_filter添加自定義查詢變量;3.修改后必須刷新固定鏈接設(shè)置;4.建議將規(guī)則放在'top'以避免沖突;5.可借助插件查看當(dāng)前規(guī)則便于
