firefox和chrome中 JQuery的ajax组件执行差异
生活随笔
收集整理的這篇文章主要介紹了
firefox和chrome中 JQuery的ajax组件执行差异
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
2019獨角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
最近做項目,發(fā)現(xiàn)了一個有意思的問題,自己解決不了,然后找別人一塊想,已解決; 問題為:一個post請求,在chrome正常執(zhí)行;在firefox中無法執(zhí)行(不報錯,只是請求失敗,后臺接受不到); 原代碼如下:
function addCustom(o) {var qy = o[0]["value"];// regionIdqy = qy.replace(" ", "");var glxs = o[1]["value"];//var km_ratio = o[2]["value"];if (km_ratio == "") {alert("請設(shè)置扣罰系數(shù)");return;} else if (qy == "") {alert("請設(shè)置扣罰區(qū)域");return;}if (jQuery.inArray(qy, regionArr) > -1) {alert("請勿重復(fù)添加自定義區(qū)域!");} else if (qy.length > 5 && qy.length < 8) {var num = (qy + "").substring(4);if (num != '00') {oilForm(km_ratio, qy);// 執(zhí)行添加} else {alert("請選擇縣級區(qū)域!!");}} else {alert("請選擇縣級區(qū)域!!"); }location.href = '/monthTask/punish'; } /* * 添加自定義扣罰系數(shù)區(qū)域 */ function oilForm(km_ratio, qy) {var newPunish = {"regionId" : qy,"rate" : km_ratio}// 發(fā)送請求$.ajax({url : 'monthTask/punish',// 添加公里系數(shù)設(shè)置區(qū)域type : 'post',data : newPunish,dataType : "json",success : function(result) {alert("已成功添加");location.href = '/monthTask/punish';},error : function(data) {if (500 == data.status) {alert("系統(tǒng)異常,請稍后重試!");} else {location.href = '/monthTask/punish';}}});}- 分析:當(dāng)執(zhí)行addCustom方法,并執(zhí)行到oilForm方法時,oilForm執(zhí)行ajax方法,firefox沒有等到ajax請求執(zhí)行完,就執(zhí)行了頁面跳轉(zhuǎn)操作;
- 相關(guān)原理:chrome將ajax作為一般進(jìn)程處理,而firefox將ajax作為后臺進(jìn)程(daemon Thread)處理;
- 解決方案:在ajax請求之后不要進(jìn)行其他的業(yè)務(wù)操作;將所有的相關(guān)邏輯都寫進(jìn)ajax里; 修改后的addCustom方法
現(xiàn)在,當(dāng)方法中執(zhí)行到ajax請求時,其后面沒有任何邏輯操作;問題就解決了.
轉(zhuǎn)載于:https://my.oschina.net/u/1590027/blog/689686
《新程序員》:云原生和全面數(shù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的firefox和chrome中 JQuery的ajax组件执行差异的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 针对访问控制列表ACL 与 基于角色的访
- 下一篇: test5