Ajax無刷新技術的踩坑點

NO IMAGE

一、常見報錯

1、 404錯誤,網頁代碼錯誤。問題可能是:

  • 單詞沒有拼寫對、
  • 流程語句邏輯有問題、
  • 路徑有問題。

2、 500錯誤,後臺代碼錯誤。問題可能是:

  • 實體類和數據庫表單字段屬性不對應、
  • sql語句傳輸錯誤(少“ ‘ ”符號,或者“ ,”符號,或者語句關鍵詞打錯)。
  • $.ajax函數裡,注意url,type,data,dataType的大小寫規範,dataType!!注意

3、EF外鍵引起的序列化問題

經過反覆的查閱,發現問題出在序列化時,由於D層一個表和另一個表示一對多關係,當序列化表1的時候,會找到和另一個表2關聯的字段,就會到另一個表2中序列化,然後另一個表2也有一個字段和表1相關聯,所以序列化發生錯誤。

二、在登錄驗證時的傳參問題

1、關於漢字的編碼解碼escape 與 unescape的使用

  • escape
var name1 = escape(name);//對文字經行編碼
location.href="1.html?name="+name1;//傳輸編碼後的文字
  • unescape
 var name = location.search;//獲取要檢測的字符串
var name1 = name.substr(string.indexof('=')+1);//截取=號下一個 下標的字符串
var name2 = unescape(name1);//解碼

三、反序列化碰到的問題

1、jQurey選擇器中,使用屬性選擇器時,$(“input[type=’checkbox’]”),input後面不能有空格,否則會被當成後代選擇器

2、在傳對象時

  • 數組要ToString()轉換為字符串;
  • data裡json對象要JSON.stringify(obj)轉化為字符串

四、全球唯一標識符問題

1、需要轉義字符\’來轉義單引號

  • 單刪時:不轉義沒法給事件傳參,但是接受到的是沒有‘’的字符串,讓新的變量接受到的是帶引號的全球唯一標識符
'<td><input id="Button1" type="button" value="刪除"  onclick="del(\'' + this.id + '\')" /></td>''
var id = "\'" + id + "\'";
  • 批刪時:用數組來存值,轉字符串時,會自動有,號隔開,而且id來自chexcbox的value,由於不是給事件傳參,所以得到的是帶‘’的字符串
 '<td><input name="ck" type ="checkbox" value="\''+ this.id+'\'"/>  </td>'

五、數據庫數據類型

當功能完成後,數據的類型也要改變,bit,datetime比nvachar節省了很多字節,在性能上要提升很多。

相關文章

通過mysql工具能連接上docker下的mysql,部署的工程連接就報錯。

YYCache源碼學習

MVC基礎知識整理(一)

初識Linq