Ajax無刷新技術的踩坑點

1、常見報錯

一、 404錯誤,網頁代碼錯誤。問題多是:

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

二、 500錯誤,後臺代碼錯誤。問題多是:

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

三、EF外鍵引發的序列化問題

通過反覆的查閱,發現問題出在序列化時,因爲D層一個表和另外一個表示一對多關係,當序列化表1的時候,會找到和另外一個表2關聯的字段,就會到另外一個表2中序列化,而後另外一個表2也有一個字段和表1相關聯,因此序列化發生錯誤。html

2、在登陸驗證時的傳參問題

一、關於漢字的編碼解碼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);//解碼
複製代碼

3、反序列化碰到的問題

一、jQurey選擇器中,使用屬性選擇器時,$("input[type='checkbox']"),input後面不能有空格,不然會被當成後代選擇器

二、在傳對象時

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

4、全球惟一標識符問題

一、須要轉義字符\'來轉義單引號

  • 單刪時:不轉義無法給事件傳參,可是接受到的是沒有‘’的字符串,讓新的變量接受到的是帶引號的全球惟一標識符
'<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>'
複製代碼

5、數據庫數據類型

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

相關文章
相關標籤/搜索