1. 程式人生 > >四、面試準備-前端知識

四、面試準備-前端知識

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進行的通訊