1,http強制快取和協議快取
(:為了伺服器壓力,加快網頁訪問速度
(:瀏覽器提供兩種控制策略,強制快取和協商快取
(:強制快取就是強制使用瀏覽器快取下來的資源
(:協商快取就是瀏覽器要和伺服器協商一下是使用瀏覽器快取還是伺服器的cache-control
(:強制快取實施,第一次請求資源的時候,後台在返回頭加上cache-control,指定乙個使用強制快取的時間長度
(:協商快取實施,第一次請求資源的時候,後台在發給前台的返回頭上加上etag表示檔案的版本資訊,告訴瀏覽器下次請求這個資源的時候,要先問一下伺服器應該使用前端快取還是重新發,伺服器會看一下etag檔案版本資訊有沒有變化來決定瀏覽器使用什麼資源
(:強制快取的優先順序比協商快取的高,兩者都存在的時候,按照強制快取來使用資源
(:強制快取的缺點,伺服器資源有新版本的時候,瀏覽器還是用的老版本
(:協商快取缺點,瀏覽器每次使用資源之前都要詢問一下伺服器應該怎麼使用資源,可能有不必要的時間和流量浪費
(:前端主要解決方案是新增檔案指紋,對html檔案永遠不用快取,只用最新版本的資源
(:這樣的話html中引用的css的檔名就會變化,快取中並沒有這個名字的css檔案,訪問html的時候會請求最新的資源去了
2、乙個請求位址切割,key重複的就將值放到乙個陣列中
(:取?開頭的後面一串
window.location.search
(:取&分割的鍵值對字串
window.location.search.split('?')[1]
(:取到每乙個=分隔的鍵值對字串的陣列
window.location.search.split('?')[1].split('&')
(:先將所有的鍵值對變成key:[value],不管有幾個相同的
var obj={}
for(var i=0,len=arr.length;i//如果key:[value]只有乙個元素,就將裡面的value拿出來
for(var k in obj)
window.location.search
"?name=a&name=b&name=c&age=1&home=bj"
var arr=window.location.search.split('?')[1].split('&')
undefined
arr(5) ["name=a", "name=b", "name=c", "age=1", "home=bj"]
for(var i=0,len=arr.length;i3、flex=1是什麼的簡寫
(:flex是flex-grow,flex-shrink,flex-basis的簡寫,預設值0 1 auto,後兩個值可選
(:flex-grow屬性定義專案的放大比例,預設是0,即
(:flex屬性是flex-grow
,flex-shrink
和flex-basis
的簡寫,預設值為0 1 auto
。後兩個屬性可選。
(:flex-grow
屬性定義專案的放大比例,預設為0
,即如果存在剩餘空間,也不放大。
(:flex-shrink
屬性定義了專案的縮小比例,預設為1,即如果空間不足,該專案將縮小。
(:flex-basis
屬性定義了在分配多餘空間之前,專案佔據的主軸空間(main size)。瀏覽器根據這個屬性,計算主軸是否有多餘空間。它的預設值為auto
,即專案的本來大小。
前端面試題
sprites是什麼和為什麼要使用他們?css 精靈 把一堆小的整合到一張大的上,減輕伺服器對的請求數量 有可能替代sprites的方法是什麼?svg圖示,字型圖示,字元編碼等等。1 在div排版的時候,假設現在是100px的寬,我在盒子左側用padding left留個10px的白,div就撐開了...
前端面試題
行內元素有哪些?塊級元素有哪些?空 void 元素有哪些?link和 import的區別是?常見相容性問題?含移動端 html5的離線儲存?描寫一段語義化的html 吧 html5的form如何關閉自動完成功能?什麼是閉包 closure 為什麼要用?localstorage和sessionstor...
前端面試題
朋友碰到的筆試題,在此記錄一下,並且記下碰到的有難點但是自己沒注意的到的面試題!function isnumber x else sum 2,3 5 sum 2 3 5 請寫出sum函式的具體實現。function sum a,c return a c 該題考查的是乙個以前沒接觸過的東西,叫做柯里化...