一個ajax同步與異步引發的血案。


前言

  公司做網上促銷活動,需要充值換取相應的抽獎資格,抽獎可以獲得豐厚的禮品,而且抽獎資格門檻有點高,領導下達命令保證活動的正常上線與運行,領導很重視,就這樣,在領導的安排下進行了相關活動的coding。。。

正文

  開發過程倒還順利,只是轉盤抽獎耽誤了點時間,不過最后還是正常制作完畢,相關測試人員也進行了測試,活動上線開始倒計時,心里有那么點忐忑。

  果不其然,活動上線2分鍾,一個玩家在沒有任何充值,而且抽獎資格也是0的情況下,抽了5,6次,都獲得了比較給力的禮品,這是查看數據庫記錄得到的結果,由於活動上線會隨時關注,便及時發現了這個問題,再看抽獎資格為-6,我了個去,明明在抽獎之前就已經做了驗證,不可能是抽獎驗證出了問題,估計是充值接口的問題,於是讓同事再查看一下充值接口,結果沒有任何問題,其實用腦袋想想也知道,不可能是充值接口的問題,因為玩家根本一毛錢也沒沖,就和充值接口的一毛錢關系也沒有,好吧,那么問題來了。。。是不是驗證出現問題了?

  翻看代碼,設置斷點

 

  進入方法之后,走了741行,再進行下一步,直接執行到了754行,我去,什么情況,這樣result的值就成了null了,后面的判斷也就不起作用了;

  就這樣調試了N遍,后台ashx文件也查看了,如果是后台ashx程序有問題,那么應該走error,但是沒有走,這就說明程序根本沒有走后台,好吧,一個同步異步的思想,陡然出現在了腦海里,於是乎,在上面這段代碼加了一句,如下:

  斷點走起,OK,一切正常,該做的驗證都通過了,好吧,問題終於解決了。

  幸虧及時發現問題,及時解決了問題,否則,我該吃炒魷魚了。。。

  其實只是解決了前端問題,根本問題沒有解決,看了園友的評論,才意識到服務端沒有做驗證,慚愧,慚愧,現在已做了服務端的驗證,多謝各位園友提醒!,此處用醒目的顏色提醒自己,以后不要再犯同樣的錯誤,另一個,避免我的錯誤言論誤導了其他園友,請多諒解!(此為園友評論后新增)

知識點與總結

  1.Jquery中的ajax在默認不寫async情況下,請求為異步請求;即:async:true;

  2.如果項目中在做一項操作之前要進行ajax的驗證,無論同步或者異步,都必須在驗證通過后,方才進行其他操作。

  3.熟練應用error參數,關注返回來的異常信息,從而判定程序的錯誤位置;

  4.項目前端做驗證,后端也做相應的驗證;前端做驗證是為了減少服務器壓力和增加用戶體驗,后端做驗證才是為了安全。(看各位園友的評論,新加的一條;)

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM