前端面試

HTMLcss

---------------------------------------------------------------html

html5有哪些新特性、移除了那些元素?如何處理HTML5新標籤的瀏覽器兼容問題?如何區分 HTML 和 HTML5?html5

 

* HTML5 如今已經不是 SGML 的子集,主要是關於圖像,位置,存儲,多任務等功能的增長。
  	  繪畫 canvas;
  	  用於媒介回放的 video 和 audio 元素;
  	  本地離線存儲 localStorage 長期存儲數據,瀏覽器關閉後數據不丟失;
        sessionStorage 的數據在瀏覽器關閉後自動刪除;
  	  語意化更好的內容元素,好比 article、footer、header、nav、section;
  	  表單控件,calendar、date、time、email、url、search;
  	  新的技術webworker, websocket, Geolocation;

    移除的元素:
  	  純表現的元素:basefont,big,center,font, s,strike,tt,u;
  	  對可用性產生負面影響的元素:frame,frameset,noframes;

  * 支持HTML5新標籤:
  	 IE8/IE7/IE6支持經過document.createElement方法產生的標籤,
    	 能夠利用這一特性讓這些瀏覽器支持HTML5新標籤,
    	 瀏覽器支持新標籤後,還須要添加標籤默認的樣式。

       固然也能夠直接使用成熟的框架、好比html5shim;
  	 <!--[if lt IE 9]>
  		<script> src="http://html5shim.googlecode.com/svn/trunk/html5.js"</script>
  	 <![endif]-->

  * 如何區分HTML5: DOCTYPE聲明\新增的結構元素\功能元素

 

簡述一下你對HTML語義化的理解?git

用正確的標籤作正確的事情。
  html語義化讓頁面的內容結構化,結構更清晰,便於對瀏覽器、搜索引擎解析;
  即便在沒有樣式CSS狀況下也以一種文檔格式顯示,而且是容易閱讀的;
  搜索引擎的爬蟲也依賴於HTML標記來肯定上下文和各個關鍵字的權重,利於SEO;
  使閱讀源代碼的人對網站更容易將網站分塊,便於閱讀維護理解。


HTML5的離線儲存怎麼使用,工做原理能不能解釋一下?github

在用戶沒有與因特網鏈接時,能夠正常訪問站點或應用,在用戶與因特網鏈接時,更新用戶機器上的緩存文件。
  原理:HTML5的離線存儲是基於一個新建的.appcache文件的緩存機制(不是存儲技術),經過這個文件上的解析清單離線存儲資源,這些資源就會像cookie同樣被存儲了下來。以後當網絡在處於離線狀態下時,瀏覽器會經過被離線存儲的數據進行頁面展現。


  如何使用:
  一、頁面頭部像下面同樣加入一個manifest的屬性;
  二、在cache.manifest文件的編寫離線存儲的資源;
  	CACHE MANIFEST
  	#v0.11
  	CACHE:
  	js/app.js
  	css/style.css
  	NETWORK:
  	resourse/logo.png
  	FALLBACK:
  	/ /offline.html
  三、在離線狀態時,操做window.applicationCache進行需求實現。
 

 請描述一下 cookies,sessionStorage 和 localStorage 的區別?web

cookie是網站爲了標示用戶身份而儲存在用戶本地終端(Client Side)上的數據(一般通過加密)。
  cookie數據始終在同源的http請求中攜帶(即便不須要),記會在瀏覽器和服務器間來回傳遞。
  sessionStorage和localStorage不會自動把數據發給服務器,僅在本地保存。

  存儲大小:
  	cookie數據大小不能超過4k。
  	sessionStorage和localStorage 雖然也有存儲大小的限制,但比cookie大得多,能夠達到5M或更大。

  有期時間:
  	localStorage    存儲持久數據,瀏覽器關閉後數據不丟失除非主動刪除數據;
  	sessionStorage  數據在當前瀏覽器窗口關閉後自動刪除。
  	cookie          設置的cookie過時時間以前一直有效,即便窗口或瀏覽器關閉

 

如何實現瀏覽器內多個標籤頁之間的通訊? (阿里)chrome

WebSocket、SharedWorker;
  也能夠調用localstorge、cookies等本地存儲方式;

  localstorge另外一個瀏覽上下文裏被添加、修改或刪除時,它都會觸發一個事件,
  咱們經過監聽事件,控制它的值來進行頁面信息通訊;
  注意quirks:Safari 在無痕模式下設置localstorge值時會拋出 QuotaExceededError 的異常;

 

webSocket如何兼容低瀏覽器?(阿里)canvas

Adobe Flash Socket 、
  ActiveX HTMLFile (IE) 、
  基於 multipart 編碼發送 XHR 、
  基於長輪詢的 XHR

 

 

 

 

 

 

 

 

 

 

 

 

牛B的和能夠分享的地方:瀏覽器

實現了一個 touchendV1, 靈感主要來自 zepto 的 tab事件, 因爲tab 事件是綁定在document上,因此會有兼容性的問題緩存

zepto 裏面對於animate 實現了一個 stop的功能, 設置當前這個元素的 transform 的屬性, 支持2D;

時間和年化收益率 曲線用createjs實現, 不會奔潰,團隊其它人找了網上好多庫的代碼, 好比 echarts,在微信和app上形成了奔潰

聲音模塊, 先讓它play再pause, 能夠實現iPhone 上播放聲音的功能; iPhone 上要先 play後pause 才能夠實現結果音樂的播放;  不過如今流行用 WebAudio;

修改了 layabox 的源碼,讓它支持能夠不用全屏展現,能夠滾動展現; 增長方法讓之前的遊戲 支持iPhoneX  的適配的功能;

以前作彈珠機遊戲的時候, 性能會一直上去, 經過chrome  的性能分析工具,找出哪一個函數佔用的內存比較高。

頁面 rem 不能自適應的問題

 

組件:

每秒點擊幾回的 limitPerTime 組件

bindInput 組件 和 dragTo 組件 和 texttip 組件

Lightbox 兼容手機端和PC端;

 

如何作遊戲的性能優化:

 

 

參考地址:

https://github.com/markyun/My-blog/tree/master/Front-end-Developer-Questions/Questions-and-Answers

相關文章
相關標籤/搜索