使用ajax加载新页面

时间:2009-12-04 14:55:50

标签: ajax load

我是ajax的新手,我想知道我们是否可以加载一个完整的新页面而不仅仅是使用ajax加载它的一部分。请提供一个小例子脚本,以了解是否可行。在这里,当我点击页面中的任何链接时,当我从一个页面切换到另一个页面时,我只想向用户显示一个URL。

5 个答案:

答案 0 :(得分:12)

您当然可以申请新页面并通过body.innerHTML = ajax.responseText;

加载

我强烈建议不要这样做,原因如本帖所述:[{3}}

  

整个前提确实就是这样   AJAX你不需要重新加载   整页更新小   该网页的百分比。这节省了   带宽通常要快得多   而不是重新加载整个页面。

     

但是如果你使用AJAX来加载   这整个页面实际上就是这样   适得其反。你必须写   定制例程来处理   回调AJAX数据。它是一个整体   很多额外的工作,几乎没有   性能提升。

     

AJAX使用位置的一般规则:如果   您的更新> 50%的页面,只是   重新加载,否则使用AJAX。

您不仅需要请求新页面,还要确保删除当前页面上的旧样式并且不会干扰新页面。你想要做的事情有各种各样的问题。这是可能的,但我建议不要这样做。

编辑:实际上你可以做document.write(ajax.responseText),它应该负责覆盖文档中的所有内容,包括css样式等。虽然仍然不推荐它。< / p>

答案 1 :(得分:1)

完成处理AJAX请求后,只需使用此JS行:

window.location.replace('<URL of the new page>');

这具有通过

加载新页面的效果
<a href="<URL of the new page>">...</a>.

答案 2 :(得分:0)

当您发出AJAX请求时,请求会消失,并为您提供您请求的URL的内容。从技术上讲,你可以用内容(可能是HTML)做任何你喜欢的事情,你可以用它替换DOM中的任何元素。但是要小心更换页面上的所有内容,您更可能只是想要替换标签内的内容。

答案 3 :(得分:0)

如果你想要做的是为多个页面显示一个URL,那么AJAX就是矫枉过正。为什么不直接使用IFRAME?

答案 4 :(得分:0)

如果您的页面不确定是否期望将错误插入到页面或“新”提交确认页面,这可能很有用。当您想要在提交servlet(或其他)之前放置验证servlet(或其他)时,可以使用此方法。如果页面始终命中验证servlet,则隐藏实际执行数据更新的提交servlet。在验证通过的情况下,转发到提交servlet。用户永远不知道后台发生了什么。

当页面得到回复时,您可以查看响应文本的第一部分,并确定它是否有服务器设置的关键字,这意味着这是一个新页面。从文本中删除关键字,并执行document.write(ajax.responseText);如前所述。否则,将响应文本插入到errorBox div中,然后让用户重试提交。