四、面試準備-前端知識
1、Ajax的工作原理
Ajax並非一種新的技術,而是幾種原有技術的結合體。它由下列技術組合而成。
1、使用CSS和XML來表示
2、使用DOM模型來互動和動態顯示
3、使用XMLHttpRequest來和伺服器進行非同步通訊。
4、使用JavaScript來繫結和呼叫。
Ajax的原理簡單來說通過XMLHttpRequest物件向伺服器發起非同步請求,從伺服器獲得資料,然後用JavaScript來操作DOM而更新頁面。
2、DOM是什麼?
DOM定義了訪問HTML和XML文件的標準。
XML DOM定義了所有XML元素的物件和屬性,以及訪問它們的方法。
HTML DOM定義了所有HTML元素的物件和屬性,以及訪問它們的方法。
換言之,HTML DOM是關於如何獲取、修改、新增或刪除HTML元素的標準。
3、innerHTML和outerHTML的區別
獲取某個元素的內容:
innerHTML:從物件的起始位置到終止位置的全部內容。
outerHTML:除了包含innerHTML的全部內容外,還包含物件標籤本身。
例:獲取id=“test”
<div id="test">
<span style="color:red">test1</span>
</div>
innerHTML的值是“<span style="color:red">test1</span>”。
outerHTML的值是“<div id="test"><span style="color:red">test1</span></div>”。
innerText的值是“test1”。
outerText的值是“test1”。
改變某個元素的內容:
例:id =“test”
<div id="test"></div>
innerHTML="<i>內容</i>"
//<div id="test"><i>內容</i></div> 展示出來的是斜體的“內容”,i作為html標籤解析了。
outerHTML="<i>內容</i>"
//<i>內容</i> 就是替換了外面的標籤,同時i會被解析,展現一個斜體的“內容”。
innerText="<i>內容</i>"
//<div id="test"><i>內容</i></div> 展示的內容為“<i>內容</i>”,i沒有作為html的標籤解析,而是直接輸出了。
outerText="<i>內容</i>"
//替換外面的標籤,i沒有解析,頁面顯示“<i>內容</i>”。
4、Html頁面載入完畢後執行某個js的兩個方法
1、window.onload=function(){}
2、$(document).ready(function(){}) 可簡寫為:$(function(){})
兩種方法的區別:
window.onload 當一個文件完全下載到瀏覽器中時,才會觸發window.onload事件。也就是說頁面上的所有元素載入完畢才會執行。這種情況對編寫功能性程式碼非常有利,因為無需考慮載入的次序。
$(document).ready 會在DOM完全就緒並可以使用時呼叫。當HTML下載完成並解析為DOM樹之後,程式碼就會執行。此時並不意味著所有關聯的檔案都已經下載完畢。
5、JavaScript有哪些開啟一個頁面的方式
在原來的窗體中直接跳轉用:window.location.href="要跳轉的頁面"。
在新窗體中開啟頁面用:window.open('要跳轉的頁面')。
6、<jsp:include>和<%@include%>的區別
<jsp:include>和<%@include%>是jsp中包含頁面的兩種方法。
<%@include%>:當JSP轉換成Servlet時引入指定檔案 (靜態包含) 。
<jsp:include>:當JSP頁面被請求時引入指定檔案(動態包含)。
對於靜態包含,<%@include%>,中包含的檔案(無論html檔案還是jsp檔案),只是簡單的嵌入到主檔案中,就是在jsp頁面轉化成Servlet時才嵌入到主檔案中,因為執行的結果是隻生成了一個Servlet。
而對於動態包含< jsp:incude>,如果被包含檔案是動態的(jsp檔案),那麼就會生成兩個Servlet,也就是被包含檔案也要經過jsp引擎編譯執行生成一個Servlet,兩個Servlet通過request和reponse進行通訊(包含的jsp是一個完整的檔案有html、body等標籤)。如果被包含的檔案是靜態的(html檔案),那麼這種情況和<%@include>就很相似,只生成了一個Servlet,但是他們之間沒有進行簡單的嵌入,而依然是通過request和reponse進行的通訊