今天在開發的時候,發現很多頁面的資訊都沒有顯示出來,仔細觀察了之後,發現都是onload的js函式沒有執行的原因。
實際上,在遇到這個問題是,我們只需注意一下狀態列裡哪個位址的執行最久,哪個位址就是禍根了,把它去掉即可。如果是站內,則需要優化一下了,找出其載入慢的原因從而解決問題。
onload的js函式是在網頁載入完畢後才執行
我一直不是很清楚,我以為onload的js函式是在網頁開啟的時候就執行了的,實際上,onload的js函式是在網頁載入完畢後才執行,即它是網頁最後才執行的函式。
了解了這個之後,我們就能理解為什麼有時候onload的js函式沒有執行了,原因很簡單,因為網頁有個別地方沒有載入完,被k住**了。
jquery的$(window).load()與onload事件比較
jquery的$(window).load()方法與onload事件,很大的區別就是執行的順序不同。
對於body.onload事件,是在載入完所有頁面內容才會觸發,我的意思是所有內容,包括,flash等.如果頁面的這些內容很多會讓使用者等待很長時間。
而對於$(document).ready()方法,這個方法只是在頁面所有的dom載入完畢後就會觸發,無疑很大的加快了網頁的速度。
但是對於一些特殊應用,比如的放大縮小,的剪裁。需要網頁所有的內容載入完畢後才執行的呢?我推薦使用$(window).load()方法,這個方法會等到頁面所有內容載入完畢後才會觸發,並且同時又沒有onload事件的弊端。
上面的**會在頁面所有內容載入完成後按先後順序依次執行。
當然不要忘了與之對應的unload方法:
$(window).unload(function() );
上面**會在頁面關閉時引發。
在所有dom載入之前引發js**,這個方法是我在除錯的時候最喜歡的,有時候開發的時候也用這種方法。
對,就是利用js閉包的形式將js**嵌入body,這段**會自動執行,當然也可以直接嵌入js**,這種方式要注意順序問題,如下:
this is the content
this is thecontent
上面兩段**,第二段**當中因為只能解釋到當前**之前的dom,而test並不存在於已經解析的dom數,所以第二段**無法正確顯示。
SpringIOC,DI,MVC的基本執行原理
ioc inversion of controller 控制反轉 作為乙個容器用於儲存spring管理的所有物件 目標 使用springioc容器管理物件 1.需要了解哪些物件是被spring容器管理的.doscanner 方法 讀取配置檔案 我這裡是.propertis檔案,也可以是xml,yml...
記憶體洩露 不包含標頭檔案類的析構函式不執行
今天遇到乙個很詭異的記憶體洩露,記錄如下 1.兩個類,記為a,b。其中a有應指向b的指標 b也有指標成員,指向new出來的空間。兩個類定義如下 1.1檔案a.h class b class a 1.2 檔案a.cpp include a.h a a 1.3 檔案b.hclass b 1.4 檔案b....
不破壞原加密儲存的儲存解密
解密儲存過程 sql2000大於40000的 alter procedure sp decrypt objectname varchar 50 asbegin begin transaction add by playyuer declare objectname1 varchar 100 decl...