在PHP中使用JSONP傳輸大量數(shù)據(jù)可以通過以下步驟實現(xiàn):
以下是一個示例代碼:
<?php
// 生成大量數(shù)據(jù)
$data = array();
for ($i = 0; $i < 1000; $i++) {
$data[] = array('id' => $i, 'name' => 'Item ' . $i);
}
// 轉(zhuǎn)換為JSON格式的字符串
$json_data = json_encode($data);
// 獲取回調(diào)函數(shù)名
$callback = isset($_GET['callback']) ? $_GET['callback'] : 'callback';
// 輸出JSONP格式的數(shù)據(jù)
header('Content-Type: application/javascript');
echo $callback . '(' . $json_data . ');';
?>
在客戶端代碼中,可以通過創(chuàng)建一個具有相同名稱的JavaScript函數(shù)來處理傳輸?shù)臄?shù)據(jù),例如:
function callback(data) {
// 在這里處理接收到的JSON數(shù)據(jù)
console.log(data);
}
// 創(chuàng)建一個script標(biāo)簽進行JSONP請求
var script = document.createElement('script');
script.src = 'http://example.com/data.php?callback=callback';
document.body.appendChild(script);
上述代碼示例中,通過PHP生成了一個包含大量數(shù)據(jù)的JSON字符串,并在輸出時使用了JSONP格式。在客戶端代碼中,通過創(chuàng)建一個具有相同名稱的JavaScript函數(shù)來處理從服務(wù)器端傳輸?shù)臄?shù)據(jù)。最后,通過創(chuàng)建一個script標(biāo)簽并設(shè)置src屬性來觸發(fā)JSONP請求。