前端寫項目經驗

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。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章