2015-10-15 71 views
0

我是新來的Ajax和一般的web開發。當我使用Ajax時,很多網站(如here)都表示,其中一個關鍵特性或Ajax是您可以動態更新網頁上的內容而無需重新加載它。ajax - Ajax vs document.getElementById()。innerHTML

我的問題是這樣的:你不能只用document.getElementById("...").innerHTML = "whatever you want it to change to"來做這個嗎?我知道使用Ajax可以向Web服務器發出請求,而不會發生什麼。這不是我的問題。我的問題是,爲什麼人們聲稱,如果您可以使用普通的JavaScript來完成,那麼更改網頁而不重新加載它對於Ajax來說是特別的東西?

而且,在上面的鏈接中,它表示使用Ajax可以「在加載頁面後,從服務器請求/接收數據」。爲什麼「在頁面加載後」?在頁面還在加載時,是否有另一種方法可以從服務器請求/接收數據?

謝謝!

+2

你可以使用innerHTML從服務器獲取數據嗎? XMLHttpRequest用於發送和檢索數據/內容。 InnerHTML用於設置頁面中的內容。可以在加載頁面時進行Ajax調用。 – epascarello

+1

W3Schools不被視爲一種好資源。爲了使語句更加準確,它應該讀取*「Ajax的關鍵特性之一是,您可以從遠程資源**動態更新網頁上的內容**,而無需重新加載它(頁面)」* – Phil

+0

爲了進一步闡述,通過AJAX加載的內容可以通過「innerHTML」或其他DOM操作方法注入頁面。這是一個更好的定義〜https://en.wikipedia.org/wiki/Ajax_(programming) – Phil

回答

2

我的問題是:你就不能使用 的document.getElementById(「...」),這樣做的innerHTML =‘任何你希望它 改變’?

您確實可以使用此屬性更改dom元素實例的內部標記。

我知道,用Ajax你可以向web服務器發送請求,並且不會發送任何請求到 。這不是我的問題。我的問題是,爲什麼人們要求在沒有重新加載的情況下更改網頁 關於Ajax的特別之處是什麼?

JavaScript是客戶端。 Ajax的特殊之處在於它向服務器請求數據,因此您可以在客戶端使用它(javascript)。 Javascript本身(理解,沒有XmlHttpRequest對象)不允許。你所能做的只是客戶端的dom操作,不知道服務器端是什麼(這意味着,除其他外,不能訪問共享數據庫)

而且,在上面的鏈接中,它表示使用Ajax你可以 「請求/接收來自服務器的數據 - 頁面加載後」。爲什麼 「在頁面加載後」?當頁面仍在加載時,是否有另一種方法可以從服務器請求/接收 數據?

是的。

jsp,php是服務器端語言的兩個示例。當您請求http://page.php(例如)時,服務器將請求路由到* .php解釋器。頁面內的代碼然後用於生成http頭和html內容返回給客戶端。這是每次訪問頁面時發生的往返行程。該頁面首先使用該系統加載。 Ajax允許您繼續隨後調用任何php腳本,而頁面已經加載。

+0

謝謝你回答我的兩個問題。 – M3579

1

阿賈克斯是從服務器加載數據,而不重新加載整個頁面的方式,的innerHTML是數據注入到頁面的一種方式......所以阿賈克斯與服務器通信的方式同時,人工添加頁面的方式也是如此。

0

你好這裏是Ajax和的document.getElementById()之間的關鍵尊重。innerHTML的是

AJAX

當你要更改perticuler DIV和改變內容AJAX將加載內容內容並不存儲在任何地方在當前網頁

的document.getElementById()。innerHTML的

如果你想在沒有Ajax的情況下更改內容,那麼你需要將內容存儲在任何javascript變量或hiddent html中,以便在需要顯示或不顯示時加載內容。

相關問題