摘要:包含基于和標(biāo)準(zhǔn)的表示使用進(jìn)行動(dòng)態(tài)顯示和交互使用與服務(wù)器進(jìn)行異步通信使用綁定一切。重定向表示要完成請(qǐng)求,需要進(jìn)一步操作。方法可將一個(gè)函數(shù)的對(duì)象上下文從初始的上下文改變?yōu)橛芍付ǖ男聦?duì)象。
一. 什么是Ajax???
術(shù)語(yǔ)Ajax用來(lái)描述一組技術(shù),它使瀏覽器可以為用戶提供更為自然的瀏覽體驗(yàn)。 Ajax它是“Asynchronous JavaScript + XML的簡(jiǎn)寫”
定義Ajax:
Ajax不是一種技術(shù)。實(shí)際上,它由幾種蓬勃發(fā)展的技術(shù)以新的強(qiáng)大方式組合而成。Ajax包含: * 基于XHTML和CSS標(biāo)準(zhǔn)的表示; * 使用Document Object Model進(jìn)行動(dòng)態(tài)顯示和交互; * 使用XMLHttpRequest與服務(wù)器進(jìn)行異步通信; * 使用JavaScript綁定一切。二. 什么是JSON
JSON來(lái)自于javascript,但是應(yīng)用上面遠(yuǎn)遠(yuǎn)不止是javascript的json,它相當(dāng)于xml,是一種比較流行的標(biāo)準(zhǔn)格式,是數(shù)據(jù)的載體 javascript json 是用于javascript程序的,它可以支持對(duì)象引用以及函數(shù);ajax json只是最簡(jiǎn)單的字符串和數(shù)字,它不可能完全支持javascript里面的數(shù)據(jù)類型。 相對(duì)于XML,JSON更加易讀、更便于肉眼檢查。在語(yǔ)法的層面上,JSON與其他格式的區(qū)別是在于分隔數(shù)據(jù)的字符三.淺談一下如何避免用戶多次點(diǎn)擊造成的多次請(qǐng)求
我們?cè)谠L問(wèn)有的網(wǎng)站,輸入表單完成以后,單擊提交按鈕進(jìn)行提交以后,提交按鈕就會(huì)變?yōu)榛疑?,用戶不能再單擊第二次,直到重新加載頁(yè)面或者跳轉(zhuǎn)。這樣,可以一定程度上防止用戶重復(fù)提交導(dǎo)致應(yīng)用程序上邏輯錯(cuò)誤。 還有很多其他的方式進(jìn)行防止重復(fù)點(diǎn)擊提交,如 1> 定義標(biāo)志位: 點(diǎn)擊觸發(fā)請(qǐng)求后,標(biāo)志位為false量;請(qǐng)求(或者包括請(qǐng)求后具體的業(yè)務(wù)流程處理)后,標(biāo)志位為true量。通過(guò)標(biāo)志位來(lái)判斷用戶點(diǎn)擊是否具備應(yīng)有的響應(yīng)。 2> 卸載及重載綁定事件: 點(diǎn)擊觸發(fā)請(qǐng)求后,卸載點(diǎn)擊事件;請(qǐng)求(或者包括請(qǐng)求后具體的業(yè)務(wù)流程處理)后,重新載入綁定事件。 3> 替換(移除)按鈕DOM 點(diǎn)擊觸發(fā)請(qǐng)求后,將按鈕DOM對(duì)象替換掉(或者將之移除),自然而然此時(shí)不在具備點(diǎn)擊事件;請(qǐng)求(或者包括請(qǐng)求后具體的業(yè)務(wù)流程處理)后,給新的按鈕DOM定義點(diǎn)擊事件。 更多講解參考:http://www.cnblogs.com/jinguangguo/archive/2013/05/20/3086925.html四.同步和異步的區(qū)別?
同步的概念應(yīng)該是來(lái)自于操作系統(tǒng)中關(guān)于同步的概念: 不同進(jìn)程為協(xié)同完成某項(xiàng)工作而在先后次序上調(diào)整(通過(guò)阻塞,喚醒等方式)。同步強(qiáng)調(diào)的是順序性,誰(shuí)先誰(shuí)后;異步則不存在這種順序性。 // 同步:瀏覽器訪問(wèn)服務(wù)器請(qǐng)求,用戶看得到頁(yè)面刷新,重新發(fā)請(qǐng)求,等請(qǐng)求完,頁(yè)面刷新,新內(nèi)容出現(xiàn),用戶看到新內(nèi)容,進(jìn)行下一步操作。 // 異步:瀏覽器訪問(wèn)服務(wù)器請(qǐng)求,用戶正常操作,瀏覽器后端進(jìn)行請(qǐng)求。等請(qǐng)求完,頁(yè)面不刷新,新內(nèi)容也會(huì)出現(xiàn),用戶看到新內(nèi)容。五.異步加載的方式有哪些?
(1)defer,只支持 IE (2)async: (3)創(chuàng)建 script,插入到 DOM 中,加載完畢后 callBack六.27. CORS是什么?對(duì)于跨域請(qǐng)求,如何將附帶憑證(HTTP Cookie及HTTP認(rèn)證信息)的請(qǐng)求發(fā)送至服務(wù)器?(提示:后續(xù)真實(shí)工作中可能會(huì)用到)
跨域請(qǐng)求一直是網(wǎng)頁(yè)編程中的一個(gè)難題,在過(guò)去,絕大多數(shù)人都傾向于使用JSONP來(lái)解決這一問(wèn)題。不過(guò)現(xiàn)在,我們可以考慮一下W3C中一項(xiàng)新的特性——CORS(Cross-Origin Resource Sharing)了。CORS是現(xiàn)代瀏覽器支持跨域資源請(qǐng)求的一種方式。 解決方法: 當(dāng)你使用XMLHttpRequest發(fā)送請(qǐng)求時(shí),瀏覽器發(fā)現(xiàn)該請(qǐng)求不符合同源策略,會(huì)給該請(qǐng)求加一個(gè)請(qǐng)求頭:Origin,后臺(tái)(php或者其它接收數(shù)據(jù)方)進(jìn)行一系列處理,如果確定接受請(qǐng)求則在返回結(jié)果中加入一個(gè)響應(yīng)頭:Access-Control-Allow-Origin;瀏覽器判斷該相應(yīng)頭中是否包含Origin的值,如果有則瀏覽器會(huì)處理響應(yīng),我們就可以拿到響應(yīng)數(shù)據(jù),如果不包含瀏覽器直接駁回,這時(shí)我們無(wú)法拿到響應(yīng)數(shù)據(jù)。 更多參考地址:www.cnblogs.com/dojo-lzz/p/4265637.html http://www.cnblogs.com/rainman/archive/2011/02/20/1959325.html七. 一次完整的HTTP事務(wù)是怎樣一個(gè)過(guò)程?
a.域名解析 b.發(fā)起TCP的三次握手 c.建立TCP連接后發(fā)起http請(qǐng)求 d.服務(wù)器端響應(yīng)http請(qǐng)求,瀏覽器得到html碼 e.瀏覽器解析html代碼,并請(qǐng)求html代碼中的資源 f.瀏覽器對(duì)頁(yè)面進(jìn)行渲染并呈現(xiàn)給客戶 更多詳細(xì)參考地址:http://www.360doc.com/content/14/0725/20/1073512_397054861.shtml八. get與post兩種方式的優(yōu)缺點(diǎn)。
get: get是從服務(wù)器上獲取數(shù)據(jù),post是向服務(wù)器傳送數(shù)據(jù); get傳送的數(shù)據(jù)量較小,不能大于2KB。post傳送的數(shù)據(jù)量較大,一般被默認(rèn)為不受限制。但理論上,IIS4中最大量為80KB,IIS5中為100KB; get安全性非常低,post安全性較高。但是執(zhí)行效率卻比Post方法好; get是把參數(shù)數(shù)據(jù)隊(duì)列加到提交表單的ACTION屬性所指的URL中,值和表單內(nèi)各個(gè)字段一一對(duì)應(yīng),在URL中可以看到; 在做數(shù)據(jù)查詢時(shí),建議用Get方式; post: post是通過(guò)HTTP post機(jī)制,將表單內(nèi)各個(gè)字段與其內(nèi)容放置在HTML HEADER內(nèi)一起傳送到ACTION屬性所指的URL地址,用戶看不到這個(gè)過(guò)程; 所以:包含機(jī)密信息的話,建議用Post數(shù)據(jù)提交方式;而在做數(shù)據(jù)添加、修改或刪除時(shí),建議用Post方式。九.對(duì)于request.status的http狀態(tài)碼 用于表示網(wǎng)頁(yè)服務(wù)器HTTP響應(yīng)狀態(tài)的3位數(shù)字代碼。1,2,3,4,5開頭的狀態(tài)碼分別代表什么(提示:404頁(yè)面表示禁止訪問(wèn)等)
1xx(臨時(shí)響應(yīng))表示臨時(shí)響應(yīng)并需要請(qǐng)求者繼續(xù)執(zhí)行操作的狀態(tài)代碼。 2xx (成功)表示成功處理了請(qǐng)求的狀態(tài)代碼。 3xx (重定向) 表示要完成請(qǐng)求,需要進(jìn)一步操作。 通常,這些狀態(tài)代碼用來(lái)重定向。 4xx(請(qǐng)求錯(cuò)誤) 這些狀態(tài)代碼表示請(qǐng)求可能出錯(cuò),妨礙了服務(wù)器的處理。 5xx(服務(wù)器錯(cuò)誤)這些狀態(tài)代碼表示服務(wù)器在嘗試處理請(qǐng)求時(shí)發(fā)生內(nèi)部錯(cuò)誤。 這些錯(cuò)誤可能是服務(wù)器本身的錯(cuò)誤,而不是請(qǐng)求出錯(cuò)。十.jQuery與jQuery UI有啥區(qū)別?
`jQuery`是一個(gè)js庫(kù),主要提供的功能是選擇器,屬性修改和事件綁定等等。 `jQuery UI`則是在jQuery的基礎(chǔ)上,利用jQuery的擴(kuò)展性,設(shè)計(jì)的插件。提供了一些常用的界面元素,諸如對(duì)話框、拖動(dòng)行為、改變大小行為等等十一.$(document).ready與window.onload有何區(qū)別?
$(document).ready 對(duì)于支持DOMContentLoaded事件的瀏覽器,會(huì)使用該事件,所有的節(jié)點(diǎn)渲染完畢,就執(zhí)行,可以調(diào)用多次,不支持的就使用 onload事件 window.onload事件要等到所有的資源加載完畢,如圖片,視頻,js腳本等,只能綁定一次,后面綁定的覆蓋前面所綁定的事件十二.jQuery中,如何阻止事件冒泡和瀏覽器默認(rèn)行為?
e.preventDefault(); e.stopPropagation();十三. Node.js的適用場(chǎng)景?
高并發(fā)、聊天、實(shí)時(shí)消息推送、服務(wù)器做前端資源壓縮十四. 那些操作會(huì)造成內(nèi)存泄漏?
內(nèi)存泄漏是指任何對(duì)象在您不再擁有或需要它之后任然存在。 垃圾回收器定期掃描對(duì)象,并計(jì)算引用了每個(gè)對(duì)象的其他對(duì)象的數(shù)量,如果一個(gè)對(duì)象的引用數(shù)量為0(沒(méi)有其他對(duì)象引用過(guò)該對(duì)象),或?qū)υ搶?duì)象的惟一引用是循環(huán)的,那么該對(duì)象的內(nèi)存即可回收。 // setTimeout 的第一個(gè)參數(shù)使用字符串而非函數(shù)的話,會(huì)引發(fā)內(nèi)存泄漏。 閉包、控制臺(tái)日志、循環(huán)(在兩個(gè)對(duì)象彼此引用且彼此保留時(shí),就會(huì)產(chǎn)生一個(gè)循環(huán))十五.call() 和 .apply() 的區(qū)別?
call方法: 語(yǔ)法:call(thisObj,Object) 定義:調(diào)用一個(gè)對(duì)象的一個(gè)方法,以另一個(gè)對(duì)象替換當(dāng)前對(duì)象。 說(shuō)明: call 方法可以用來(lái)代替另一個(gè)對(duì)象調(diào)用一個(gè)方法。call 方法可將一個(gè)函數(shù)的對(duì)象上下文從初始的上下文改變?yōu)橛?thisObj 指定的新對(duì)象。 如果沒(méi)有提供 thisObj 參數(shù),那么 Global 對(duì)象被用作 thisObj。 apply方法: 語(yǔ)法:apply(thisObj,[argArray]) 定義:應(yīng)用某一對(duì)象的一個(gè)方法,用另一個(gè)對(duì)象替換當(dāng)前對(duì)象。 說(shuō)明: 如果 argArray 不是一個(gè)有效的數(shù)組或者不是 arguments 對(duì)象,那么將導(dǎo)致一個(gè) TypeError。 如果沒(méi)有提供 argArray 和 thisObj 任何一個(gè)參數(shù),那么 Global 對(duì)象將被用作 thisObj, 并且無(wú)法被傳遞任何參數(shù)。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/114097.html
摘要:本篇收錄了一些面試中經(jīng)常會(huì)遇到的經(jīng)典面試題,并且都給出了我在網(wǎng)上收集的答案。網(wǎng)頁(yè)的行為層負(fù)責(zé)回答內(nèi)容應(yīng)該如何對(duì)事件做出反應(yīng)這一問(wèn)題。 本篇收錄了一些面試中經(jīng)常會(huì)遇到的經(jīng)典面試題,并且都給出了我在網(wǎng)上收集的答案。眼看新的一年馬上就要開始了,相信很多的前端開發(fā)者會(huì)有一些跳槽的悸動(dòng),通過(guò)對(duì)本篇知識(shí)的整理以及經(jīng)驗(yàn)的總結(jié),希望能幫到更多的前端面試者。(如有錯(cuò)誤或更好的答案,歡迎指正,水平有限,望...
摘要:本篇收錄了一些面試中經(jīng)常會(huì)遇到的經(jīng)典面試題,并且都給出了我在網(wǎng)上收集的答案。網(wǎng)頁(yè)的行為層負(fù)責(zé)回答內(nèi)容應(yīng)該如何對(duì)事件做出反應(yīng)這一問(wèn)題。 本篇收錄了一些面試中經(jīng)常會(huì)遇到的經(jīng)典面試題,并且都給出了我在網(wǎng)上收集的答案。眼看新的一年馬上就要開始了,相信很多的前端開發(fā)者會(huì)有一些跳槽的悸動(dòng),通過(guò)對(duì)本篇知識(shí)的整理以及經(jīng)驗(yàn)的總結(jié),希望能幫到更多的前端面試者。(如有錯(cuò)誤或更好的答案,歡迎指正,水平有限,望...
摘要:本篇收錄了一些面試中經(jīng)常會(huì)遇到的經(jīng)典面試題,并且都給出了我在網(wǎng)上收集的答案。網(wǎng)頁(yè)的行為層負(fù)責(zé)回答內(nèi)容應(yīng)該如何對(duì)事件做出反應(yīng)這一問(wèn)題。 本篇收錄了一些面試中經(jīng)常會(huì)遇到的經(jīng)典面試題,并且都給出了我在網(wǎng)上收集的答案。眼看新的一年馬上就要開始了,相信很多的前端開發(fā)者會(huì)有一些跳槽的悸動(dòng),通過(guò)對(duì)本篇知識(shí)的整理以及經(jīng)驗(yàn)的總結(jié),希望能幫到更多的前端面試者。(如有錯(cuò)誤或更好的答案,歡迎指正,水平有限,望...
摘要:包含基于和標(biāo)準(zhǔn)的表示使用進(jìn)行動(dòng)態(tài)顯示和交互使用與服務(wù)器進(jìn)行異步通信使用綁定一切。重定向表示要完成請(qǐng)求,需要進(jìn)一步操作。方法可將一個(gè)函數(shù)的對(duì)象上下文從初始的上下文改變?yōu)橛芍付ǖ男聦?duì)象。 一. 什么是Ajax??? 術(shù)語(yǔ)Ajax用來(lái)描述一組技術(shù),它使瀏覽器可以為用戶提供更為自然的瀏覽體驗(yàn)。 Ajax它是Asynchronous JavaScript + XML的簡(jiǎn)寫 定義Ajax: ...
閱讀 2123·2021-11-23 10:06
閱讀 3488·2021-11-11 16:54
閱讀 3352·2019-08-29 17:31
閱讀 3576·2019-08-29 17:05
閱讀 2175·2019-08-26 13:36
閱讀 2165·2019-08-26 12:17
閱讀 535·2019-08-26 12:12
閱讀 1681·2019-08-26 10:19