首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >通过AJAX加载web应用程序内容

通过AJAX加载web应用程序内容
EN

Stack Overflow用户
提问于 2010-10-26 17:47:12
回答 2查看 255关注 0票数 2

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

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

到目前为止,我敢肯定浏览器的后退按钮和历史/url将会消失。

EN

回答 2

Stack Overflow用户

发布于 2010-10-26 17:57:21

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

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

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

代码语言:javascript
运行
复制
  http://yourdomain.com/home.aspx //loads its own content via AJAX

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

  etc

只有当你有很多内容,或者内容涉及耗时的计算时,这才是真正合适的,比如在一个金融网站上。在大多数情况下,通常或会将你的内容分成分页的块,这样就不会那么麻烦了。

票数 3
EN

Stack Overflow用户

发布于 2010-10-26 17:59:51

这种方法的主要缺点是,这将使搜索引擎很难抓取您的站点。他们不读Javascript,所以你的内容不会被他们看到或索引。尝试使用progressive enhancement,这样他们(以及任何不使用Javascript的用户,例如屏幕阅读器)就不会被抛在后面。

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

代码语言:javascript
运行
复制
$(window).hashchange(function(){
    var location = window.location.hash;

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

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4022474

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档