web專案常問面試題

2021-09-11 15:33:02 字數 2947 閱讀 1091

1:語意化標籤         (利於搜尋引擎收錄 也提高了**閱讀性)

2:減少標籤的巢狀 (利於渲染引擎的加速渲染)

3:把script標籤移到html檔案末尾,因為js會阻塞後面的頁面的顯示

4:減少iframe的使用,因為iframe會增加一條http請求,阻止頁面載入,即使內容為空,載入也需要時間

6:html結構的復用性

複製**

1:盡量不使用萬用字元(*)

2:把頁面公用的樣式給封裝到css檔案裡面(減少**量、復用性強、便於維護)

3:不要用內聯樣式和行類樣式(比較亂 維護性比較差)

4:盡量使用最具體的類別、避免後代選擇器、屬於標籤類別的規則永遠不要包含子選擇器

//因為從左到右解析關係,在css選擇器中後代選擇器非但沒有幫我們加快css查詢。反而查詢很慢

5:能用css實現的樣式就不要用。減少http請求

6:合併壓縮css檔案 減少http請求

複製**

1:可以多使用事件委託  減少事件註冊

2:多使用if語句多做判斷 減少不必要的操作

3:建立標籤的時候盡量通過字串建立,不要通過createelement。因為通過 createelement建立完之後還要再次操作這個dom去設定屬性和文字等。而直接建立字串只需要一步設定好。

4:設定樣式的時候 盡量不要用style去設定樣式 維護性 可讀性差 最好新增通過class去設定樣式

5:盡量少使用eval函式。(使用eval相當於在執行時再次呼叫解釋引擎對內容進行執行,需要消耗大量時間,而且使用eval帶來的安全性問題也是不容忽視的。)

6:使用三目運算子替代條件分支可以減少直譯器對條件的探測次數

7:提高**復用性使用封裝。減少**量、維護性好。

8:合併壓縮js 減少http請求

複製**

1:合併生成雪碧圖 減少http請求

2:小於2kb轉換成base64 通過css去設定 減少http請求

3:壓縮大小

4:如果不考慮相容問題 可以通過canvas代替

5:配合js使用懶載入。載入

複製**

1:產品根據需求做出產品原型 --> 後台

2:ui根據產品原型做設計稿 psd

3:前端是根據設計稿作出頁面

4:整合開發 + 前後臺互動

5:測試-->改bug 1:本地測試 2:灰度(bate)測試 3:線上測試

6:上線-->夜晚12點1: 自己總結一下找到電商**有哪些頁面?

2: 購物車資料一般存在後台。不能用本地儲存,因為換一台瀏覽器的話 本地儲存的資料就用不了。而且商品的**是會改變的。如果用本地儲存,**改變了拿不到最新資料。

3:通過用ping++去實現

amd/cmd/commonjs是js模組化開發的標準,目前對應的實現是requirejs/seajs/nodejs。commonjs主要針對服務端,amd/cmd主要針對瀏覽器端,所以最容易混淆的是amd/cmd。

amd/cmd區別

1:amd是預載入,在並行載入js檔案同時,還會解析執行該模組(因為還需要執行,所以在載入某個模組前,這個模組的依賴模組需要先載入完成)。cmd是懶載入,雖然會一開始就並行載入js檔案,但是不會執行,而是在需要的時候才執行。

2:amd載入快速,尤其遇到多個大檔案,因為並行解析,所以同一時間可以解析多個檔案。cmd執行等待時間會疊加。因為每個檔案執行時是同步執行(序列執行),因此時間是所有檔案解析執行時間之和,尤其在檔案較多較大時,這種缺點尤為明顯。

3:amd並行載入,非同步處理,載入順序不一定,可能會造成一些困擾,甚至為程式埋下大坑。cmd因為只有在使用的時候才會解析執行js檔案,因此,每個js檔案的執行順序在**中是有體現的,是可控的1:乙個js檔案用乙個匿名函式自執行。這樣乙個js檔案的變數和函式的作用域只存在這個js檔案中 不會出現汙染

2:乙個js檔案乙個物件包含著變數和方法,使用的時候去呼叫這個物件。

3:使用模組化載入js庫。比如require.js和sea.js1:設定meta標籤禁止快取

//expires(期限)

//說明:可以用於設定網頁的到期時間。一旦網頁過期,必須到伺服器上重新傳輸。

"expires" content="0">

//cache-control指定請求和響應遵循的快取機制。no-cache指示請求或響應訊息不能快取

"cache-control" content="no-cache">

//pragma(cache模式)

//說明:禁止瀏覽器從本地計算機的快取中訪問頁面內容。

"pragma" content="no-cache">。

複製**

2:給靜態資源檔案設定時間戳。每一次請求的檔案不一樣的話 會去伺服器請求最新的資源
"www.baidu.com/index.css?timestamp=" + new date().gettime();

複製**

3:伺服器端設定響應頭不快取
//對應html設定meta標籤

response.setheader("pragma", "no-cache");

response.setheader("cache-control", "no-cache");

response.setdateheader("expires", 0);

複製**

減少http請求 加快速度。css和js和的壓縮合併

把靜態資源如js、css、都放在cdn上。cdn通過在網路各處放置節點伺服器。會按最近伺服器推送資源給客戶端。

伺服器端把一些介面可以設定瀏覽器快取

將指令碼放在底部。指令碼放在底部對於實際頁面載入的時間並不能造成太大影響,但是這會減少頁面首屏出現的時間,使頁面內容逐步呈現。

HashMap常問的面試題

來看看hashmap經常被問的問題 1 hashmap特性?2 hashmap與hashtable區別?3 hashmap執行緒不安全實際會如何體現?4 hashmap如何變成執行緒安全?5 hashmap的資料結構是什麼?6.1 我們可以使用自定義的物件作為鍵嗎?7 hashmap初始化傳入的容量...

MySQL常問鎖的面試題

鎖 lock 在多人處理同乙個資料的時候,保證每次只有乙個人可以操作。mysql提供了頁鎖 全域性鎖 行鎖 表鎖。其中innodb採用的是行鎖和表鎖,myisam只支援表鎖。是指二個或者二個以上的程序在執行時候,因為爭奪資源造成相互等待的現象,程序一直處於等待中,無法得到釋放,這種狀態就叫做死鎖,批...

C 常考面試題

1.string類的實現 string string const char str else string string const string str string string operator const string str delete m data m data new char st...