2019.9.11工做記錄javascript
事項表中:expressFlag字段,0表示快遞,1表示不快遞html
如今須要在頁面上,若是是不支持物流快遞的事項,那麼按鈕就變成不可選中狀態java
對應頁面的處理:經過JQuery設置<input>屬性爲disabledexpress
<script type="text/javascript"> if(${service.expressFlag == '0'}){ $("#notNeed").attr("disabled",true); $("#need").attr("disabled",true); }else{ $("#notNeed").removeAttr("disabled",true); $("#need").removeAttr("disabled",true); /* $("#notNeed").attr("disabled",false); $("#need").attr("disabled",false); */ } <script/> </head> <body> </body>
可是發現,按鈕只是樣式變了可是仍是能夠選中(後來是能夠添加禁用屬性,可是不能移除。而後把條件改成1,發現仍是沒有變化,不能移除)瀏覽器
後來把js代碼放在後面緩存
</head> <body> </body> <script type="text/javascript"> if(${service.expressFlag == '0'}){ $("#notNeed").attr("disabled",true); $("#need").attr("disabled",true); }else{ $("#notNeed").removeAttr("disabled",true); $("#need").removeAttr("disabled",true); /* $("#notNeed").attr("disabled",false); $("#need").attr("disabled",false); */ } <script/>
就能夠正常使用。性能
PS:正常之後我再把js代碼放到前面,他又能夠正常禁用/取消禁用(我清理過瀏覽器緩存了)code
緣由猜想:因爲頁面加載順序致使。htm
正常網頁加載的順序:blog
1 瀏覽器一邊下載html網頁,一邊開始解析.
2解析過程當中,若發現script標籤,暫停解析,網頁渲染的控制權交給js引擎.
3 若是scirpt引用了外部腳本,就下載該腳本,不然直接執行.
4.執行完畢,控制權交還給js渲染引擎.恢復往下解析html網頁.
--------------------------------------------------------------------
1.在html中 body部分中的js會在頁面加載的時候被執行.
2.在html中head中的js會預先進行加載,反而會在頁面須要調用的時候纔會執行代碼,因此能夠將預先不執行的代碼放在head中.
3.需調用先執行的時候把js放在head中,在head頁面載入的時候,就同時載入了代碼,在body中調用的時候就不用載入代碼,速度會提升.
4.若是head中的js代碼須要傳入一個參數,須要body中的參數,那麼這時候就會報錯,由於此時頁面的DOM樹還未生成.
5 從js對頁面下載性能方向考慮. 因爲腳本會阻塞其餘資源的下載,如圖片和頁面渲染,直到腳本所有被下載並執行完畢後,頁面的渲染纔會繼續,所以推薦將全部的script標籤放到底部.