近期在項目開發(fā)過程中遇到的頁面加載小問題在這里簡單的總結(jié)一下。
1.點擊按鈕使用異步加載的方法去查詢列表內(nèi)容的時候,我發(fā)現(xiàn)執(zhí)行了兩遍。反復(fù)查看代碼都沒有找到原因。頁面中代碼如下所示:
<form class="panel panel-default">
<div class="panel-heading">
列表
</div>
<div class="row wrapper">
<div class="form-inline" role="form">
<div class="fr " id="search">
<button class="btn btn-success"><i class="fa fa-search"></i>查詢</button>
</div>
</div>
</div>
</form>
按鈕使用的button,而不是<input type='button' />這種形式,后來我就換了這種形式,發(fā)現(xiàn)結(jié)果就對了且是執(zhí)行一遍。后來經(jīng)過大牛一看,說原因肯定不是出在這里了。后來就反復(fù)再檢查代碼,最終是把最外層的form改成div,結(jié)果就對了。
由此總結(jié),如果頁面添加的是form表單,標簽內(nèi)部如果再使用button標簽,則頁面會把button自動識別為submit類型去執(zhí)行。因為submit執(zhí)行一次,button點擊事件又執(zhí)行一次。這才是最終原因。所以我們在寫代碼的過程中一定要記得把form表單和button標簽區(qū)分開來。
2.js生命周期
控制器中主頁面和副頁面我們一般會使用一個js文件去處理所有邏輯,最開始我不清楚執(zhí)行順序,我再每個頁面中都去引用這個js文件,這個時候你會發(fā)現(xiàn)副頁面的方法都會執(zhí)行兩遍。而實際是只要在主頁面中引用一次js文件就ok了。