欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

jquery ajax compress

在Web開發(fā)中,隨著Ajax的廣泛應(yīng)用,頁面動(dòng)態(tài)更新的需求日益增加。而隨之帶來的問題也逐漸暴露:數(shù)據(jù)傳輸量過大。這不光增加了服務(wù)器的負(fù)載,同時(shí)也浪費(fèi)了用戶的流量。為了解決這個(gè)問題,我們來介紹一下jquery ajax中的壓縮功能。

$.ajax({
url: 'url',
type: 'POST',
dataType: 'json',
data: data,
beforeSend: function (xhr) {
xhr.setRequestHeader('Accept-Encoding', 'gzip, deflate');
}
}).done(function (json) {
// 請(qǐng)求成功后的處理
}).fail(function (xhr, textStatus, errorThrown) {
// 請(qǐng)求失敗后的處理
});

這是一個(gè)基本的ajax請(qǐng)求,唯一的不同是在beforeSend函數(shù)中添加了一個(gè)請(qǐng)求頭信息Accept-Encoding,告知服務(wù)器可以支持的數(shù)據(jù)壓縮格式。

接下來,我們來看一下服務(wù)器端的響應(yīng):

$result = array(
'field1' =>'value1',
'field2' =>'value2',
'field3' =>'value3'
);
$json = json_encode($result);
$encoding = isset($_SERVER['HTTP_ACCEPT_ENCODING']) ? $_SERVER['HTTP_ACCEPT_ENCODING'] : '';
if (stripos($encoding, 'gzip') !== false && function_exists('gzencode')) {
header('Content-Encoding: gzip');
$json = gzencode($json, 9);
}
header('Content-Type: application/json');
echo $json;

核心代碼是在發(fā)送響應(yīng)頭信息之前,判斷客戶端是否支持gzip壓縮,如果支持則在響應(yīng)頭信息中添加Content-Encoding: gzip,然后對(duì)JSON數(shù)據(jù)進(jìn)行壓縮,最后輸出壓縮后的數(shù)據(jù)。

通過這種方式,就能大幅減少數(shù)據(jù)傳輸量,在保證數(shù)據(jù)完整性的前提下,提高了數(shù)據(jù)傳輸?shù)男剩档土朔?wù)器負(fù)載與用戶流量消耗。