前端寫專案經驗

深山裡的天空發表於2018-09-11

1、最近在寫一個專案遇到一些問題,記錄一下,首先是在做動態增加表格tr,忽然發現設定的日期input不能使用,這個需要一段js程式碼初始化datetimepicker,如這段
$('.form_datetime').datetimepicker({
minView: "month", //選擇日期後,不會再跳轉去選擇時分秒
language: 'zh-CN',
format: 'yyyy-mm-dd',
todayBtn: 1,
autoclose: 1,
});

但是在新增的tr下的input日期就不能夠實現,也想了很久,最後一想頁面內容載入順序,對於css新新增的標籤是預設渲染,但是js只會預設執行一次,所以想到就是在新增新標籤後,再執行js初始化程式碼函式,即可完成設定。

2、關於HTML頁面檔案載入順序的問題(該段來源牛頓的部落格)
瀏覽器載入顯示html的順序是按下面的順序進行的:
1)、IE下載的順序是從上到下,渲染的順序也是從上到下,下載和渲染是同時進行的。
2)、在渲染到頁面的某一部分時,其上面的所有部分都已經下載完成(並不是說所有相關聯的元素都已經下載完)。
3)、如果遇到語義解釋性的標籤嵌入檔案(JS指令碼,CSS樣式),那麼此時IE的下載過程會啟用單獨連線進行下載。
4)、並且在下載後進行解析,解析過程中,停止頁面所有往下元素的下載。
5)、樣式表在下載完成後,將和以前下載的所有樣式表一起進行解析,解析完成後,將對此前所有元素(含以前已經渲染的)重新進行渲染。
6)、JS、CSS中如有重定義,後定義函式將覆蓋前定義函式。
3、關於Ajax進行資料傳輸與後臺資料繫結問題
用ajax在data部分傳資料到後臺進行資料繫結時,有時候粗心會出現重複的鍵值對,這個時候封裝欄位的時候是使用哪一個呢?
自己簡單測試了一下,發現是使用後面的鍵值對來對資料繫結物件,猜想機理:springmvc資料繫結時,首先把json資料從頭開始與物件域進行對比,如果相同則賦值給物件,不物件,則不賦值,預設為null等預設欄位,因此如果後面有重複欄位,則後面會把前面的值給覆蓋,因此繫結的物件域值就是最後一個重複鍵對應的值。
還有在用外掛關於日期進行資料繫結時,由於文字日期是空(‘’),因此會報400 無效的請求。可以把日期欄位值先判斷一下,然後如果空可以賦值null,否則文字日期值。
4、關於ajax與後臺互動,並實現springMVC資料繫結問題
關於資料繫結物件,後臺函式需要繫結物件引數使用requestBody修飾,即可完成資料繫結,
而在後臺返回值方面需要使用responseBody來修飾函式,這個作用就是把值返回給ajax,否則的話,ajax會收不到正確的狀態碼,而執行error函式。
出現後臺執行成功,卻執行error函式提示失敗。
對於彈出框,如果是使用第三方的外掛,而彈出後需要執行跳轉等操作,如果跳轉也寫在success函式中,彈出框(alert除外)不會被執行或者提示錯誤,是因為跳轉執行很快,而第三方提示框需要時間載入,所以可以用setTimeout進行執行後面的跳轉的js。

相關文章