一、前端SEO
? ? 1.合理的title、description埂伦、keywords:搜索對(duì)著三項(xiàng)的權(quán)重逐個(gè)減小,title值強(qiáng)調(diào)重點(diǎn)即可思恐,重要關(guān)鍵詞出現(xiàn)不要超過2次沾谜,而且要靠前膊毁,不同頁面title要有所不同;description把頁面內(nèi)容高度概括类早,長度合適媚媒,不可過分堆砌關(guān)鍵詞,不同頁面description有所不同涩僻;keywords列舉出重要關(guān)鍵詞即可缭召。
? ? 2.重要內(nèi)容的HTML放前面,搜索引擎 從上至下 檢索逆日。
? ? 3.重要內(nèi)容不用js引入嵌巷,爬蟲不會(huì)去執(zhí)行js。
? ? 4.少用iframe室抽,搜索引擎不抓取iframe
? ? 5.圖片加alt
? ? 6.提高網(wǎng)站速度
二搪哪、網(wǎng)站性能優(yōu)化
? ? HTML:
? ? 1.減少HTTP請(qǐng)求:合并文件、CSS精靈坪圾、inline Image
? ? 2.減少DNS查詢:DNS查詢完成之前瀏覽器不能從這個(gè)主機(jī)下載任何任何文件晓折。方法:DNS緩存、將資源分布到恰當(dāng)數(shù)量的主機(jī)名兽泄,平衡并行下載和DNS查詢
? ? 3.避免重定向:多余的中間訪問
????4.使Ajax可緩存
? ? 5.非必須組件延遲加載
? ? 6.未來所需組件預(yù)加載
????7.減少DOM元素?cái)?shù)量
? ? 8.將資源放到不同的域下:瀏覽器同時(shí)從一個(gè)域下載資源的數(shù)目有限漓概,增加域可以提高并行下載量
? ? 9.減少iframe數(shù)量
? ? 10.不要404
? ? 服務(wù)器:
????1.使用CDN
????2.添加Expires或者Cache-Control響應(yīng)頭
????3.對(duì)組件使用Gzip壓縮
????4.配置ETag
????5.Flush Buffer Early(PHP有flush函數(shù))
????6.Ajax使用GET進(jìn)行請(qǐng)求
????7.避免空src的img標(biāo)簽
? ? 其他:
????1.減少cookie大小
????2.將樣式表放到頁面頂部
????3.不使用CSS表達(dá)式
????5.不使用@import
????6.不使用IE的Filter
三、狀態(tài)碼
? ??1XX:信息狀態(tài)碼
? ??????100 Continue:客戶端應(yīng)當(dāng)繼續(xù)發(fā)送請(qǐng)求病梢。這個(gè)臨時(shí)相應(yīng)是用來通知客戶端它的部分請(qǐng)求已經(jīng)被服務(wù)器接收胃珍,且仍未被拒絕◎涯埃客戶端應(yīng)當(dāng)繼續(xù)發(fā)送請(qǐng)求的剩余部分觅彰,或者如果請(qǐng)求已經(jīng)完成,忽略這個(gè)響應(yīng)钮热。服務(wù)器必須在請(qǐng)求萬仇向客戶端發(fā)送一個(gè)最終響應(yīng)
? ??????101 Switching Protocols:服務(wù)器已經(jīng)理解力客戶端的請(qǐng)求填抬,并將通過Upgrade消息頭通知客戶端采用不同的協(xié)議來完成這個(gè)請(qǐng)求。在發(fā)送完這個(gè)響應(yīng)最后的空行后隧期,服務(wù)器將會(huì)切換到Upgrade消息頭中定義的那些協(xié)議痴奏。
????2XX:成功狀態(tài)碼
? ??????200 OK:請(qǐng)求成功,請(qǐng)求所希望的響應(yīng)頭或數(shù)據(jù)體將隨此響應(yīng)返回
? ??????201 Created:
? ??????202 Accepted:
? ??????203 Non-Authoritative Information:
? ??????204 No Content:
? ??????205 Reset Content:
? ??????206 Partial Content:
????3XX:重定向
? ??????300 Multiple Choices:
? ??????301 Moved Permanently:
? ??????302 Found:
? ??????303 See Other:
? ??????304 Not Modified:
? ??????305 Use Proxy:
? ??????306 (unused):
? ??????307 Temporary Redirect:
????4XX:客戶端錯(cuò)誤
? ??????400 Bad Request:
? ??????401 Unauthorized:
? ??????402 Payment Required:
? ??????403 Forbidden:
? ??????404 Not Found:
? ??????405 Method Not Allowed:
? ??????406 Not Acceptable:
? ??????407 Proxy Authentication Required:
? ??????408 Request Timeout:
? ??????409 Conflict:
? ??????410 Gone:
? ??????411 Length Required:
? ??????412 Precondition Failed:
? ??????413 Request Entity Too Large:
? ??????414 Request-URI Too Long:
? ??????415 Unsupported Media Type:
? ??????416 Requested Range Not Satisfiable:
? ??????417 Expectation Failed:
????5XX: 服務(wù)器錯(cuò)誤
? ??????500 Internal Server Error:
? ??????501 Not Implemented:
? ??????502 Bad Gateway:
? ??????503 Service Unavailable:
? ??????504 Gateway Timeout:
? ??????505 HTTP Version Not Supported:
????具體查看:HTTP狀態(tài)碼
四厌秒、BFC
? ??創(chuàng)建規(guī)則:
????????根元素
????????浮動(dòng)元素(float不是none)
????????絕對(duì)定位元素(position取值為absolute或fixed)
????????display取值為inline-block,table-cell,?table-caption,flex,?inline-flex之一的元素
????????overflow不是visible的元素
? ? 作用:
????????可以包含浮動(dòng)元素
????????不被浮動(dòng)元素覆蓋
????????阻止父子元素的margin折疊
五读拆、深克隆
function deepClone(arr) {
????if (typeof arr != "object") {
????????return arr;
????}
????var result = {};
????for (var i in arr) {
????????result[i] = deepClone(arr[i]);
????}
????return result;
}