通过AJAX加载Web应用程序内容

时间:2010-10-26 09:47:12

标签: asp.net jquery ajax web-applications

我即将构建一个Web应用程序(而不是Web演示文稿),它将通过AJAX(jQuery)将其内容加载到特定的div中。 div上方会有一个菜单,当用户点击菜单中的某个项目时,相应的页面将被加载到主div中。

我想知道为Web应用程序选择此模式是否有任何缺点和优点。

到目前为止,我很清楚浏览器后退按钮和历史/网址将会消失。

2 个答案:

答案 0 :(得分:3)

两个可能的缺点是,它可能会使用户难以在您的网站上添加书签内容,并且搜索引擎难以区分您网站上的网页。

您应该提供有关采用此方法的原因的更多信息。您可能有充分的理由,或者可能是使用技术(AJAX)的情况,因为它很酷。

如果您想给用户一个快速响应的印象,那么是AJAX加载您的页面,但每个页面仍然有不同的URL。这将需要更多的代码,但它将解决我提到的两个问题。

  http://yourdomain.com/home.aspx //loads its own content via AJAX

  http://yourdomain.com/contact.aspx //loads its own content via AJAX

  etc

如果您拥有大量内容,或内容涉及耗时的计算(例如在金融网站上),则此选项非常合适。在大多数情况下,只需正常加载网页将内容分解为分页块就不那么麻烦了。

答案 1 :(得分:1)

这种方法的主要原因是这会使您的网站很难被搜索引擎抓取。他们不会阅读Javascript,因此您的内容不会被他们看到或编入索引。尝试progressive enhancement,以便他们(以及任何不使用Javascript的用户,例如屏幕阅读器)都不会落后。

另一方面,您可以保留浏览器历史记录功能。这可以使用URL哈希来完成,例如http://www.example.com/#home vs http://www.example.com/#about-us。最好的方法是让Ben Alman hashchange plugin然后使用hashchange事件:

$(window).hashchange(function(){
    var location = window.location.hash;

    //do your processing here based on the contents of location
});

这将允许您的用户使用其浏览器的历史记录功能和书签功能。有关详细信息,请参阅其网站上的文档。