解決$.ajax瀏覽器積存導致重複操作越來越慢的問題!!-教學撰寫:徐嘉裕Neil hsu

使用ajax非同步方式作內容編輯儲存,會發現同樣的操作次數越多,啟用程式速度越慢,最後整個程式就卡住不動了,像下面這樣的範例:

重複點選編輯




然後儲存,大概操作3次以上瀏覽器就會卡住!

解決方法只要在$.ajax加上cache,ifModified,async設定即可解決瀏覽器積存問題


function invoiceajaxbox($id,$suid,$invoiceid,$html,$receiverreturn,$list){

$.ajax({

url: xoopsjsurl + '/modules/neillibrary/ajax.php',

type: 'POST',

data: { id: $id,

suid:$suid,

invoiceid:$invoiceid,

list:$list,

receiverreturn:$receiverreturn

},

cache:false,

ifModified :true ,

async:false,

success: function(response) {

$($html).html(response);

},

error: function() {

console.log('ajax error!');

}

})

}

加上紅字設定後,這樣即使用同樣操作100次瀏覽器也不會卡住,有需要的朋友參考看看!!

備註:只有在AJAX檔中呼叫的JS檔中執行的$.ajax才需要加上async:false, 啟用同步請求
教學撰寫:徐嘉裕 Neil hsu

留言

  1. 若設定 async:false,(同步而非異步) 如果要ajax呼叫的資料太多 有可能網頁會被鎖死

    回覆刪除
  2. 只有在AJAX(ajax.php)檔案裏面需要呼叫的JS檔才要下async:false,一般頁面觸發是不用的!!

    回覆刪除
  3. 非同步->同步->非同步~這樣的邏輯~您參考看看!!

    回覆刪除

張貼留言

這個網誌中的熱門文章

jquery.datepicker下拉月曆只顯示年-月的設定方法-教學撰寫:徐嘉裕Neil hsu

在CentOS7上安裝XAMPP並設定允許外部連線phpmyadmin的方法-教學撰寫:徐嘉裕Neil hsu

jQuery用.each()取代for迴圈