是否可以使用AJAX加载完整网页,我将如何处理它?使用AJAX加载网页
我在想,我可以像平常一样创建单独的页面,然后使用AJAX以某种方式获取该页面,并将其呈现在用户当前所在的位置。这是否是正确的假设?
基本上我打算做一个更加动态的网站,所以当用户点击一个选项时,它会向下滚动并显示请求的信息,没有明显的页面重定向。
任何建议将是伟大的。
谢谢。
是否可以使用AJAX加载完整网页,我将如何处理它?使用AJAX加载网页
我在想,我可以像平常一样创建单独的页面,然后使用AJAX以某种方式获取该页面,并将其呈现在用户当前所在的位置。这是否是正确的假设?
基本上我打算做一个更加动态的网站,所以当用户点击一个选项时,它会向下滚动并显示请求的信息,没有明显的页面重定向。
任何建议将是伟大的。
谢谢。
jQuery的.load(URL)方法加载HTML直接进入的元素。因此,如果您将每个<一个>标记更改为顶级元素上的.load(),则可以执行此操作。这有点像使用框架,但是定位DIV而不是框架。
当然它会破坏很多的东西,像后退按钮,表格,以便搬运等等等等,除非你把大量的工作英寸
,就像医生告诉时候谁“这伤害我这样做的时候“回答”那么不要那么做“,答案可能是”不这样做“。
是的可用性问题是我试图牢记的事情之一。指出后退按钮很好。 – diggersworld 2011-01-28 12:27:22
是的,这是可能的。您可以从纯JavaScript中创建一个页面/网站,从Web服务或类似的处理程序中获取所有元素。尽管如此,这仍然是一场噩梦,并且根据您的需求遇到各种各样的问题。我将它作为学习jQuery,AJAX和其他一些事情的练习。我发现表单提交变得棘手。虽然数据通过AJAX发布到Web服务中,但管理页面状态变得非常复杂,并且随着网站需求的增长,它只会变得噩梦。
我还发现,为了实现这个目标,您必须选择在转换期间刷新整个界面,或者只是更改部分。刷新整个界面非常麻烦,对于“快速”用户来说,AJAX可能无法跟上。它也会导致Web服务请求发生冲突。如果您的页面有4个独立的部分正在更新,那么Web服务请求会在中间“丢失”并不常见,而不会更新。
所以你的问题的答案是“是”。仔细阅读你的问题,我会将你的请求范围保留在单独的显示页面上,而不需要太多的功能。保持它越简单,维护和使用就越容易。
我知道这是一个旧帖子,但这是一个很好的小脚本,可以完成这项工作。它可以将ajax内容加载到现有的非Ajax站点。需要jQuery。
<script type="text/javascript">
//Your navigation bar, can be "document" or body
var $navigation = $(".side");
//Your main content that will be replaces
var body = ".page";
var $body = $(body);
$navigation.delegate("a", "click", function() {
window.location.hash = $(this).attr("href");
return false;
});
$(window).bind('hashchange', function() {
var newHash = window.location.hash.substring(1);
if(newHash) {
$body.fadeOut(200, function() {
$body.hide().load(newHash + " " + body, function() {
$body.fadeIn(200, function() {
});
});
});
};
});
$(window).trigger('hashchange');
</script>
所有在$导航链接将有一个click事件添加到他们,将更新窗口的URL哈希值。该窗口正在监听散列更改,并将使用散列值发出AJAX请求来重新加载$ body html。
欲了解更多信息和例子中看到:http://css-tricks.com/video-screencasts/85-best-practices-dynamic-content/
可能的,但inadvi黑貂 - 如果你重写整个页面,你并没有利用任何真正的好处。你的使用案例并没有让你听起来像你需要这样做,只是修改了AJAX页面的SOP部分。 – annakata 2011-01-28 11:50:37