前端面試題

描述cookie, sessionStorage和localStorage的區別?

1.cookie數據始終在同源的http請求中攜帶(即便不須要),即cookie在瀏覽器和服務器間來回傳遞。而sessionStorage和localStorage不會自動把數據發給服務器,僅在本地保存。cookie數據還有路徑(path)的概念,能夠限制cookie只屬於某個路徑下。javascript

2.存儲大小限制也不一樣,cookie數據不能超過4k,同時由於每次http請求都會攜帶cookie,因此cookie只適合保存很小的數據,如會話標識。sessionStorage和localStorage 雖然也有存儲大小的限制,但比cookie大得多,能夠達到5M或更大。html

3.數據有效期不一樣,sessionStorage:僅在當前瀏覽器窗口關閉前有效,天然也就不可能持久保持;localStorage:始終有效,窗口或瀏覽器關閉也一直保存,所以用做持久數據;cookie只在設置的cookie過時時間以前一直有效,即便窗口或瀏覽器關閉。java

4.做用域不一樣,sessionStorage不在不一樣的瀏覽器窗口中共享,即便是同一個頁面;localStorage 在全部同源窗口中都是共享的;cookie也是在全部同源窗口中都是共享的。json

如何解決跨域問題?

1.JSONP
  JSONP是JSON with Padding的略稱。它是一個非官方的協議,它容許在服務器端集成Script tags返回至客戶端,經過javascript callback的形式實現跨域訪問(這僅僅是JSONP簡單的實現形式)。關於jsonp的使用方式,能夠參考http://blog.csdn.net/alen1985...,優缺點能夠參考http://blog.csdn.net/z6918378...跨域

2.添加響應頭,容許跨域
addHeader(‘Access-Control-Allow-Origin:*’);//容許全部來源訪問
addHeader(‘Access-Control-Allow-Method:POST,GET’);//容許訪問的方式瀏覽器

3.代理的方式
服務器A的test01.html頁面想訪問服務器B的後臺action,返回「test」字符串,此時就出現跨域請求,瀏覽器控制檯會出現報錯提示,因爲跨域是瀏覽器的同源策略形成的,對於服務器後臺不存在該問題,能夠在服務器A中添加一個代理action,在該action中完成對服務器B中action數據的請求,而後在返回到test01.html頁面。服務器

同步異步區別?

同步任務指的是,在主線程上排隊執行的任務,只有前一個任務執行完畢,才能執行後一個任務;cookie

異步任務指的是,不進入主線程、而進入"任務隊列"(task queue)的任務,只有等主線程任務執行完畢,"任務隊列"開始通知主線程,請求執行任務,該任務纔會進入主線程執行。
具體來講,異步運行機制以下:session

(1)全部同步任務都在主線程上執行,造成一個執行棧(execution context stack)。

(2)主線程以外,還存在一個"任務隊列"(task queue)。只要異步任務有了運行結果,就在"任務隊列"之中放置一個事件。

(3)一旦"執行棧"中的全部同步任務執行完畢,系統就會讀取"任務隊列",看看裏面有哪些事件。那些對應的異步任務,因而結束等待狀態,進入執行棧,開始執行。

(4)主線程不斷重複上面的第三步。
相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息