知識點整理(三)

1. 前端性能優(yōu)化的方法?

(1) 減少http請求次數(shù):CSS Sprites, JS、CSS源碼壓縮、圖片大小控制合適;網(wǎng)頁Gzip,CDN托管,data緩存 ,圖片服務(wù)器。
(2) 前端模板 JS+數(shù)據(jù),減少由于HTML標(biāo)簽導(dǎo)致的帶寬浪費,前端用變量保存AJAX請求結(jié)果,每次操作本地變量,不用請求,減少請求次數(shù)
(3) 用innerHTML代替DOM操作,減少DOM操作次數(shù),優(yōu)化javascript性能。
(4) 當(dāng)需要設(shè)置的樣式很多時設(shè)置className而不是直接操作style。
(5) 少用全局變量、緩存DOM節(jié)點查找的結(jié)果。減少IO讀取操作。
(6) 避免使用CSS Expression(css表達(dá)式)又稱Dynamic properties(動態(tài)屬性)。
(7) 圖片預(yù)加載,將樣式表放在頂部,將腳本放在底部 加上時間戳。
(8) 按需加載, 將不影響首屏的資源和當(dāng)前屏幕資源不用的資源放到用戶需要時才加載,可以大大提升重要資源的顯示速度和降低總體流量

2. CSS優(yōu)化、提高性能的方法有哪些?

將樣式表放到頁面頂部
不使用CSS表達(dá)式
不使用@import
不使用IE的Filter

3. jsonp的原理

jsonp的實現(xiàn)原理就是,jquery中動態(tài)創(chuàng)建一個script元素,然后給script的scr屬性賦值為ajax請求接口地址,在接口地址的后面添加一個callback的參數(shù),參數(shù)的值就是jquery中動態(tài)生成的函數(shù)的函數(shù)名稱,后臺更具參數(shù)返回值
返回的結(jié)構(gòu)是 方法名(json值) 成功后就相當(dāng)于執(zhí)行了一個js函數(shù),就是ajax中success的成功后的回調(diào)函數(shù)

4. 請解釋一下 JavaScript 的同源策略。

同源策略是客戶端腳本(尤其是Javascript)的重要的安全度量標(biāo)準(zhǔn)。它最早出自Netscape Navigator2.0,其目的是防止某個文檔或腳本從多個不同源裝載。
它的精髓很簡單:它認(rèn)為自任何站點裝載的信賴內(nèi)容是不安全的。當(dāng)被瀏覽器半信半疑的腳本運(yùn)行在沙箱時,它們應(yīng)該只被允許訪問來自同一站點的資源,而不是那些來自其它站點可能懷有惡意的資源。
這里的同源指的是:同協(xié)議,同域名和同端口

5. 跨域有幾種方法?

跨域的話我研究過的有兩種方法,jsonpCORS兩種,

jsonp 的話以前比較常用一些,主要實現(xiàn)原理就是通過引用js的方法來獲取跨域資源,通過執(zhí)行js函數(shù)的方法調(diào)用回調(diào)成功的函數(shù),

cors 的話這個比較簡單一些,但是有一些兼容問題,只支持ie10+ 和現(xiàn)代瀏覽器適合用于移動端,實現(xiàn)原理就是在后端加上header頭信息Access-Control-Allow-Origin: *,也可以指定域名訪問Access-Control-Allow-Origin: <u>http://api.qiutc.me</u>

其他的方法暫時還沒有研究過

6. 什么是Ajax和JSON,它們的優(yōu)缺點。

Ajax是異步JavaScript和XML,用于在Web頁面中實現(xiàn)異步數(shù)據(jù)交互。
優(yōu)點:
  可以使得頁面不重載全部內(nèi)容的情況下加載局部內(nèi)容,降低數(shù)據(jù)傳輸量
  避免用戶不斷刷新或者跳轉(zhuǎn)頁面,提高用戶體驗
缺點:
  對搜索引擎不友好(
  要實現(xiàn)ajax下的前后退功能成本較大
  可能造成請求數(shù)的增加
  跨域問題限制
JSON是一種輕量級的數(shù)據(jù)交換格式,ECMA的一個子集
優(yōu)點:輕量級、易于人的閱讀和編寫,便于機(jī)器(JavaScript)解析,支持復(fù)合數(shù)據(jù)類型(數(shù)組、對象、字符串、數(shù)字)

7. HTTP和HTTPS

HTTP 協(xié)議通常承載于TCP協(xié)議之上,在HTTP和TCP之間添加一個安全協(xié)議層(SSL或TSL),這個時候,就成了我們常說的HTTPS。
默認(rèn)HTTP的端口號為80,HTTPS的端口號為443。

8. Ajax 是什么? 如何創(chuàng)建一個Ajax?

ajax是一種創(chuàng)建交互式網(wǎng)頁的計算
ajax的全稱:Asynchronous Javascript And XML。異步傳輸+js+xml。
所謂異步,在這里簡單地解釋就是:向服務(wù)器發(fā)送請求的時候,我們不必等待結(jié)果,而是可以同時做其他的事情,等到有了結(jié)果它自己會根據(jù)設(shè)定進(jìn)行后續(xù)操作,與此同時,頁面是不會發(fā)生整頁刷新的,提高了用戶體驗

(1)創(chuàng)建XMLHttpRequest對象,也就是創(chuàng)建一個異步調(diào)用對象.
(2)創(chuàng)建一個新的HTTP請求,并指定該HTTP請求的方法、URL及驗證信息.
(3)設(shè)置響應(yīng)HTTP請求狀態(tài)變化的函數(shù).
(4)發(fā)送HTTP請求.
(5)獲取異步調(diào)用返回的數(shù)據(jù).
(6)使用JavaScript和DOM實現(xiàn)局部刷新.

    var xhr= new XMLHttpRequest();
    xhr.open('GET','demo.url','true');
    xhr.send()
    xhr.onreadystatechange = function(){
        if(xhr.readyState === 4 & xhr.status === 200) {
            console.log(responseText)
        }
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 【轉(zhuǎn)載】CSDN - 張林blog http://blog.csdn.net/XIAOZHUXMEN/articl...
    竿牘閱讀 3,590評論 1 14
  • 概要 64學(xué)時 3.5學(xué)分 章節(jié)安排 電子商務(wù)網(wǎng)站概況 HTML5+CSS3 JavaScript Node 電子...
    阿啊阿吖丁閱讀 9,853評論 0 3
  • 五十三:請解釋 JavaScript 中 this 是如何工作的。1.方法調(diào)用模式當(dāng)一個函數(shù)被保存為一個對象的屬性...
    Arno_z閱讀 684評論 0 2
  • 本文旨在加深對前端知識點的理解,資料來源于網(wǎng)絡(luò) position的值, relative和absolute分別是相...
    新晉小牛牛閱讀 1,402評論 0 15
  • 清明 清明時節(jié)雨紛紛,路上行人欲斷魂。 借問酒家何處有?牧童遙指杏花村。 清明一直以來我...
    蘋果冰閱讀 294評論 0 1

友情鏈接更多精彩內(nèi)容