JQuery面试题1
1.說(shuō)下JQuery里面的選擇器及其用法
??ID選擇器,元素選擇器,屬性選擇器,
2.JQuery中常用的方法 ?
| 方法 | 描述 |
| hide() | 隱藏被選元素 |
| show() | 顯示被選元素 |
| toggle() | 切換(在隱藏和與顯示之間)被選元素 |
| html(content) | 改變被選元素的(內(nèi)部)HTML |
| append(content) | 向被選元素的(內(nèi)部)追加內(nèi)容 |
| css(name,value) | 為匹配元素設(shè)置樣式屬性的值 |
| load(url,data,callback) | 把遠(yuǎn)程數(shù)據(jù)加載到被選的元素中 |
3.簡(jiǎn)單的闡述 JS,JQuery 。?
Javascript 是一種由Netscape的LiveScript 發(fā)展而來(lái)的原型化繼承的基于對(duì)象的動(dòng)態(tài)類型的區(qū)分大小寫(xiě)的客戶端腳本語(yǔ)言,主要目的是為了解決服務(wù)端語(yǔ)言,比如Perl,遺留的速度問(wèn)題,為客戶端提供更流暢的瀏覽效果。?
JQuery 是繼prototype之后又一個(gè)優(yōu)秀的Javascript框架,它是輕量級(jí)的JS庫(kù)。它的核心理念就是writer less, do more 。?
4.簡(jiǎn)單介紹JQuery的優(yōu)勢(shì)。
5.AJAX執(zhí)行流程是什么 ??
1.通過(guò)JS創(chuàng)建瀏覽器對(duì)象XMLHttpRequest,瀏覽器分為IE和非IE.
2.設(shè)置回調(diào)函數(shù) onreadystatechange?
3.客戶端和服務(wù)器建立連接,通過(guò)open("GET/POST",url,ture/false) 打開(kāi)請(qǐng)求
4.通過(guò)send()發(fā)送請(qǐng)求
5.服務(wù)器調(diào)用回調(diào)函數(shù),當(dāng)狀態(tài)為4則表示發(fā)送請(qǐng)求成功
6.處理響應(yīng)數(shù)據(jù):
1)responseText:作為文本串返回
2)responseXML:作為Xml文件返回?
6.你每次的AJAX的請(qǐng)求都訪問(wèn)數(shù)據(jù)庫(kù)嗎?有什么壞處??
? ? ? AJAX的一大特點(diǎn)就是我需要這個(gè)數(shù)據(jù)(訪問(wèn)數(shù)據(jù)庫(kù))的時(shí)候才給我,異步提交,就是每次提交服務(wù)器,特別是跟服務(wù)器要數(shù)據(jù)訪問(wèn)數(shù)據(jù)庫(kù)的時(shí)候,要先連接數(shù)據(jù)庫(kù)再SQL查詢處理,再返回到瀏覽器,這個(gè)時(shí)候當(dāng)很多人都訪問(wèn)的時(shí)候,就會(huì)影響服務(wù)器的性能,影響響應(yīng)的時(shí)間。關(guān)鍵要看是否訪問(wèn)頻繁,如果很頻繁,并且數(shù)據(jù)不經(jīng)常變化,那么就可以訪問(wèn)數(shù)據(jù)庫(kù)
7.如果不用AJAX怎么實(shí)現(xiàn)局部刷新??
1 用JQuery?
? load( url, [data], [callback] ) :載入遠(yuǎn)程 HTML 文件代碼并插入至 DOM 中。
? url (String) : 請(qǐng)求的HTML頁(yè)的URL地址。
? data (Map) : (可選參數(shù)) 發(fā)送至服務(wù)器的 key/value 數(shù)據(jù)。
? callback (Callback) : (可選參數(shù)) 請(qǐng)求完成時(shí)(不需要是success的)的回調(diào)函數(shù)。
? ?這個(gè)方法默認(rèn)使用 GET 方式來(lái)傳遞的,如果[data]參數(shù)有傳遞數(shù)據(jù)進(jìn)去,就會(huì)自動(dòng)轉(zhuǎn)換為POST方式的。
?2 也可以用iframe
這里將顯示結(jié)果。?
8.AJAX有哪些狀態(tài) ?
| 狀態(tài) | 描述 |
| 0 | 請(qǐng)求未初始化(在調(diào)用 open() 之前) |
| 1 | 請(qǐng)求已提出(調(diào)用 send() 之前) |
| 2 | 請(qǐng)求已發(fā)送(這里通常可以從響應(yīng)得到內(nèi)容頭部) |
| 3 | 請(qǐng)求處理中(響應(yīng)中通常有部分?jǐn)?shù)據(jù)可用,但是服務(wù)器還沒(méi)有完成響應(yīng)) |
| 4 | 請(qǐng)求已完成(可以訪問(wèn)服務(wù)器響應(yīng)并使用它) |
9.JQuery中 假設(shè)表單域沒(méi)有id,name 你是如何得到第二個(gè)表單的元素 ??
? ? 可以用選擇器里面的eq(1)加上別的選擇器判斷?
10.JQuery的事件 ?
? ? jQuery 事件處理方法是 jQuery 中的核心函數(shù)。
? ? ? 事件處理程序指的是當(dāng) HTML 中發(fā)生某些事件時(shí)所調(diào)用的方法。術(shù)語(yǔ)由事件"觸發(fā)"(或"激發(fā)")經(jīng)常會(huì)被使用。
| 事件 | 描述 |
| $(doncument).ready(function) | 將函數(shù)綁定到文檔的就緒事件(當(dāng)文檔完成加載時(shí)) |
| $(selector).clik(function) | 觸發(fā)或?qū)⒑瘮?shù)綁定到被選元素的點(diǎn)擊事件 |
| $(selector).dblclick | 觸發(fā)或?qū)⒑瘮?shù)綁定到被選元素的雙擊事件 |
| $(selector).focus(function) | 觸發(fā)或?qū)⒑瘮?shù)綁定到被選元素的獲得焦點(diǎn)事件 |
| $(selector).mouseover(function) | 觸發(fā)或?qū)⒑瘮?shù)綁定到被選元素的鼠標(biāo)懸停事件 |
11.js里只允許一個(gè)onLoad(),在JQuery里怎么弄兩個(gè)??
window.onload = function(){
alert("text1");
};?
window.onload = function(){
alert("text2");
};?
結(jié)果只輸出第二個(gè) ,?能同時(shí)編寫(xiě)多個(gè) 。?
12.AJAX的同步與異步 。
? ? 舉個(gè)例子:比如你去圖書(shū)館借某種書(shū),可惜圖書(shū)館此書(shū)被借完。這時(shí)可以采用兩種做法。
? ? 第一種做法:在圖書(shū)館一直等待,直到有人還書(shū),然后再去吃飯睡覺(jué)。
? ?第二種做法:直接跟圖書(shū)館管理員約定,若是有人還書(shū),直接通知你。你則該忙什么忙什么。到時(shí)候會(huì)通知你。
? ?而第一種做法就是同步的表現(xiàn),必須等待別人還書(shū)(等待服務(wù)器返回信息)才進(jìn)行其他事情,至死方休。
? ?而第二種做法就是異步的表現(xiàn),不耽誤時(shí)間,合理利用時(shí)間高效率做事。
? ?Ajax用異步傳輸?shù)暮锰幨翘岣咝? 減少用戶等待時(shí)間, 提高用戶體驗(yàn)度.?
13.AJAX的回調(diào)函數(shù) 。?
? ? ? ?回調(diào)函數(shù)不是由該函數(shù)的實(shí)現(xiàn)方直接調(diào)用,而是在特定的事件或條件發(fā)生時(shí)由服務(wù)器執(zhí)行完成后調(diào)用的,用于對(duì)該事件或條件進(jìn)行響應(yīng)。?
14.JQuery是怎么用的 ?主要用到了什么??
? ? 首先要導(dǎo)入JQuery的包文件(有Min版和未壓縮版),然后在JSP中引入包,接下來(lái)再引入自己的JS。?
? ? 主要用到了選擇器和事件 和AJAX。?
?15.DWR是什么 ??
? ? ? ? ? ? DWR(Direct Web Remoting)是一個(gè)用于改善web頁(yè)面與Java類交互的遠(yuǎn)程服務(wù)器端Ajax開(kāi)源框架,可以幫助開(kāi)發(fā)人員開(kāi)發(fā)包含AJAX技術(shù)的網(wǎng)站。它可以允許在瀏覽器里的代碼使用運(yùn)行在WEB服務(wù)器上的JAVA函數(shù),就像它就在瀏覽器里一樣。可以簡(jiǎn)單說(shuō)是Java實(shí)現(xiàn)的AJAX框架?
16.JQuery中背景顏色你是怎么設(shè)置的 ??
? ? ? $(document.body).css( "background", "black" );
17.AJAX提交數(shù)據(jù)的時(shí)候使用同步還是異步??
? ? 異步。?
18.你懂AJAX的原理和它的框架嗎 ??
? ? ?Ajax的原理簡(jiǎn)單來(lái)說(shuō)通過(guò)XmlHttpRequest對(duì)象來(lái)向服務(wù)器發(fā)異步請(qǐng)求,從服務(wù)器獲得數(shù)據(jù),然后用Javascript來(lái)操作DOM從而更新頁(yè)面 。?
? ? AJAX框架主要有ajax.dll,ajaxpro.dll,magicajax.dll 以及微軟的atlas框架?
19.JQuery隱藏一個(gè)DIV使用什么方法?,調(diào)用什么方法拿到父無(wú)素??
? ?隱藏一個(gè)DIV的方法有:
? ?hide() 隱藏顯示的元素 ; 如果選擇的元素是隱藏的,這個(gè)方法將不會(huì)發(fā)生任何改變。
? ? ?toggle() 如果元素是可見(jiàn)的,切換為隱藏的;如果元素是隱藏的,切換為可見(jiàn)的。?
拿到父元素的方法有:
parent()取得一個(gè)包含著所有匹配元素的唯一父元素的元素集合。
? ?parents()取得一個(gè)包含著所有匹配元素的祖先元素的元素集合(不包含根元素)。?
20.做一個(gè)鼠標(biāo)點(diǎn)擊DIV動(dòng)畫(huà),變大變小的那種,說(shuō)一下思路。
<td id="test"></td> 用JQuery代碼替換文字和文字的顏色 。
? ? ??文字的替換可以JQuery對(duì)象的text(),文字的顏色attr,如果是css,我們css()
21.AJAX()怎么返回后臺(tái)的值。配置及作用。
? ??在回調(diào)函數(shù)里面返回后臺(tái)的值,可以用xmlHttpRequest的responseText 或responseXml獲得?
22.JQuery如何調(diào)用事件,如何獲取頁(yè)面元素,如何抓去樣式 ??
調(diào)用事件:最常用的是為元素添加onclick元素屬性的方式來(lái)添加事件?,使用各種選擇器來(lái)獲取元素,使用css()來(lái)抓取樣式
23.JQuery怎樣獲取json的數(shù)據(jù)??
? ?a. 使用了require JS 框架
? ?b. 用Jquery的兩種方法獲取后臺(tái)數(shù)據(jù)
? 1)ajax 方法,傳回的都是json數(shù)據(jù)?
? ?2)getJSON, 直接封裝了一些參數(shù){command : GetRegsiterJsonData}
24.AJAX發(fā)送的請(qǐng)求的協(xié)議是什么 ?
? ? HTTP
25.JQuery的clone方法參數(shù)加true和不加true的區(qū)別 ?
? ? ? clone(true)方是復(fù)制一個(gè)元素及其所有事件,
? ? clone()方法是復(fù)制一個(gè)元素,不包含其所有事件?
26.在頁(yè)面動(dòng)態(tài)顯示一個(gè)時(shí)間。
?
27.AJAX的緩存問(wèn)題怎么解決??
方法一:?
在ajax發(fā)送請(qǐng)求前加上 :
? ? ?xmlHTTP.setRequestHeader("If-Modified-Since","0");?
方法二:
服務(wù)器端代碼加入:
? ? response.setHeader("Cache-Control", "no-cache, must-revalidate");
方法三:
? ? 用JavaScript在Ajax提交的時(shí)候加入一個(gè)隨機(jī)數(shù)作為URL中的一個(gè)參數(shù)。req.open(url + "&" + Math.random).?
28.JQuery怎么拿頁(yè)面的值、屬性。?
? ? ?用attr函數(shù),val
29.AJAX怎么用的,怎么把數(shù)據(jù)提交到后臺(tái)的?
? 通過(guò)open函數(shù)打開(kāi)連接,通過(guò)send方法發(fā)送數(shù)據(jù)
30.在寫(xiě)下js和JQuery如何獲取頁(yè)面元素的?
? ? ??js可以用document.getElementById或者document.getElementByName,但是JQuery就是比較強(qiáng)大,可以用各種選擇器來(lái)獲取,最主要的還是ID選擇器("#id");
31.講下JQuery里面的AJAX幾種實(shí)現(xiàn)和比較方式
有l(wèi)oad(),post(),get(),ajax(),getJson()等,詳細(xì)說(shuō)明具體實(shí)現(xiàn),
load是把遠(yuǎn)程url地址獲取后的html代碼直接插入到當(dāng)前元素里面,不需要寫(xiě)回調(diào)函數(shù)
$.get()是把遠(yuǎn)程url獲取的信息通過(guò)回調(diào)函數(shù)來(lái)處理,通過(guò)get方式提交?
$.post()是把遠(yuǎn)程url獲取的信息通過(guò)回調(diào)函數(shù)來(lái)處理,通過(guò)post方式提交
$.ajax是最復(fù)雜的一個(gè)ajax執(zhí)行函數(shù),它是$.get和$.post的基礎(chǔ)??
32.講下AJAX的缺點(diǎn)
? ?不支持回退按鈕,對(duì)于手機(jī)移動(dòng)設(shè)備不支持,數(shù)據(jù)量太大數(shù)據(jù)解析比較麻煩?
轉(zhuǎn)載于:https://www.cnblogs.com/t0404/p/10291006.html
總結(jié)
以上是生活随笔為你收集整理的JQuery面试题1的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: bzoj 2190: [SDOI2008
- 下一篇: 关于多线程小结