1.onload和ready區別javascript
1.執行時間
window.onload必須等到頁面內包括圖片的全部元素加載完畢後才能執行。
$(document).ready()是DOM結構繪製完畢後就執行,沒必要等到加載完畢。
2.編寫個數不一樣
window.onload不能同時編寫多個,若是有多個window.onload方法,只會執行一個。
$(document).ready()能夠同時編寫多個,而且均可以獲得執行,並按添加的順序執行css
function addLoadEvent(func){ var oldLoad = window.onload; if(typeof window.onload!='function'){ window.onload=func; }else{ window.onload=function(){ oldLoad(); func(); } } }
3.簡化寫法
window.onload沒有簡化寫法
$(document).ready(function(){})能夠簡寫成$(function(){});html
4.向.ready()回調函數中傳入參數java
jQuery提供了一個jQuery.noConflict()方法,調用該方法能夠把對$標識符的控制權讓渡還給其餘庫。web
2.改變this執行環境ajax
apply call數組
詳細見博客:http://www.cnblogs.com/YangqinCao/p/5411758.html瀏覽器
3.匿名函數的做用,哪些地方用到緩存
匿名函數:就是沒有名字的函數服務器
定義函數字面量和即時函數時都有用到
你能夠認爲他們是一次性函數。當你只須要用一次某個函數式,他們就特別有用。經過使用匿名函數,沒有必要把函數一直放在內存中,因此使用匿名函數更加有效率。
匿名函數的做用是建立一塊封閉區域,外面不可以訪問裏面的變量和方法,
4.onclick和click的區別
1.onclick是綁定事件,告訴瀏覽器在鼠標點擊時候要作什麼
click自己是方法做用是觸發onclick事件,只要執行了元素的click()方法,就會觸發onclick事件。
2.click()方法的主要做用是觸發調用click方法元素onclick事件。
click方法中的function代碼會在onclick事件執行完後執行,此時click方法起到追加事件的做用。
<script type=
"text/javascript"
>
$(
function
(){
$(
"#btn3"
).click(
function
(){
alert(
"aa"
);
});
});
function
change(){
alert(
"bb"
);
}
</script>
<button id=
"btn3"
onclick=
"change()"
>dd</button>
先彈出bb再彈出aa
5.從輸入網址到顯示網頁的過程
通常會經歷如下幾個過程:
一、首先,在瀏覽器地址欄中輸入url
二、瀏覽器先查看瀏覽器緩存-系統緩存-路由器緩存,若是緩存中有,會直接在屏幕中顯示頁面內容。若沒有,則跳到第三步操做。
三、在發送http請求前,須要域名解析(DNS解析),解析獲取相應的IP地址。
四、瀏覽器向服務器發起tcp鏈接,與瀏覽器創建tcp三次握手。
五、握手成功後,瀏覽器向服務器發送http請求,請求數據包。
六、服務器處理收到的請求,將數據返回至瀏覽器
七、瀏覽器收到HTTP響應
八、讀取頁面內容,瀏覽器渲染,解析html源碼
九、生成Dom樹、解析css樣式、js交互
十、客戶端和服務器交互
十一、ajax查詢
其中,步驟2的具體過程是:
6.進程和線程的區別
計算機的核心是CPU,CPU承擔全部的計算任務。CPU就比如是一個工廠,時刻在運行。
假設這個工廠的電力有限,一次只能供一個車間使用,也就是說一個車間在使用的時候其餘車間都必須關閉。進程就是這個車間,一個進程在執行時,其餘進程要等待它執行完。
一個車間有不少個工人,他們協同完成一個任務,那麼工人就是線程,一個進程能夠有多個線程。
車間裏有不少小房間,每一個工人均可以進入這些房間,因此一個進程的內存是共享的,全部線程可使用這些共享內存。
可是房間有大有小,好比說廁所一次只能進一我的,這表明有些共享內存一次只能容許一個線程訪問,其餘線程必須等它結束了才能使用這塊內存。一個防止他人進入的辦法就是,先進去的人在房間上加一把鎖,後來的人看到門上的鎖就知道里面有人,就在外面等着,這把鎖就叫互斥鎖,能防止多個線程同時讀寫一個內存。
有些房間好比廚房比較大,一次能夠進入n我的,可是超過n我的就要在外面等待。這比如某些內存區域只能給固定的線程數訪問。爲了防止其餘人進入,能夠在房間門口掛n把鎖,進去一我的拿一把鎖,出來的人再把鎖掛在門上,這樣後來的人看到門上沒鎖了就知道要在外面等待了。這種作法叫作信號量。能夠防止多線程衝突。
操做系統的設計歸結爲3點:
1.以多進程形式,容許多個任務同時運行
2.以多線程形式,容許一個任務分紅不一樣的部分同時運行
3.提供協調機制,防止進程之間與線程之間的衝突,容許線程之間和進程之間共享資源。
不一樣歸結爲如下幾點: