2015-10-15 70 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中,以便在需要显示或不显示时加载内容。

相关问题