色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

php ajax 導入

謝彥文1年前7瀏覽0評論

當今互聯網時代下,大量數據的交互變得日益頻繁。因此,網頁需要盡量減少用戶等待時間。這里介紹一種可以讓小數據量的信息快速地在網頁上展示的技術——php ajax導入。

相信大家都曾經遇到這樣的情況:在網頁上點擊某個按鈕,網頁穩穩地卡在原地,不停地刷新,讓人抓狂。這是因為當一個大文件一次性被傳輸給服務器時,會使網頁停止響應。而php ajax導入技術可以將文件分為若干小塊,逐步上傳和處理,保證數據在更短的響應時間內被展示到頁面上。

下面,通過一個簡單的例子來介紹php ajax導入技術的實現過程。假設有一個html頁面,里面有一個上傳文件的按鈕,一個JQuery實現的進度條控制圖和一個展示上傳結果的div塊。先用JQuery實現文件上傳操作:

$(document).ready(function(){
$('#uploadForm').on('submit', function(e){
e.preventDefault();
var formData = new FormData(this); 
$.ajax({
url: 'upload.php',//上傳地址
type: 'POST',
data: formData,
beforeSend: function () {
$('progress').show(); //顯示進度條
$("#rText").empty(); // 清空上傳返回值
},
xhr: function () {
var xhr = $.ajaxSettings.xhr();
if (xhr.upload) {
xhr.upload.addEventListener('progress', function (e) {
var loaded = e.loaded; //已經上傳的字節數
var total = e.total; //文件總字節數
var percent = Math.floor(100 * loaded / total); //上傳百分比
$('progress').val(percent); //設置進度條值
});
}
return xhr;
},
success: function (ret) {
$('progress').hide();
$("#rText").html(ret);
},
contentType: false,
processData: false
});
});
});

其中:

  • formData(this)表示上傳表單中的數據以二進制流的形式發送到服務器端。
  • beforeSend在AJAX請求發送之前觸發,用于頁面動態控制。
  • xhr是跨瀏覽器的XMLHttpRequest對象,用以監聽上傳進度事件,更新進度條。
  • contentType和processData都設置為false,表示jquery不要處理數據,數據仍以二進制流形式發送到服務器端。

接下來,實現PHP上傳文件操作的代碼。在upload.php文件中編寫如下代碼:

if(isset($_FILES["file"])){
$name = $_FILES["file"]["name"];
$tmp_name = $_FILES["file"]["tmp_name"];
$error = $_FILES["file"]["error"];
if($error == UPLOAD_ERR_OK){
move_uploaded_file($tmp_name, "$name");
echo "$name uploaded Success!";
}
else{
echo "Upload failed!";
}
}

可以看到,當傳輸完成時,通過echo語句在前端頁面上展示文件上傳結果。

綜上所述,可以看到,在php ajax導入技術中,前端頁面實現的效果是上傳進度條的實時顯示;而后端處理的實現主要是利用PHP語言處理文件上傳請求。php ajax導入技術不僅可以提高用于體驗,而且還能節約時間,讓你的網頁更快速地展現數據,為用戶提供更流暢的使用體驗。