【问题标题】:Loading web application content through AJAX通过 AJAX 加载 Web 应用程序内容
【发布时间】:2011-04-30 15:57:05
【问题描述】:

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

我想知道为 Web 应用程序选择这种模式是否有任何利弊。

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

【问题讨论】:

    标签: asp.net jquery ajax web-applications


    【解决方案1】:

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

    您可能应该提供更多信息,说明您采用这种方法的原因。您可能有充分的理由,或者它可能是使用技术 (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
    

    这仅适用于您拥有大量内容或内容涉及耗时计算的情况,例如在金融网站上。在大多数情况下,正常加载页面将内容分成分页块会更容易。

    【讨论】:

    • 我正在使用一个 javascript 组件库,它构建了一个漂亮的桌面应用程序外观布局。问题是当我转到任何其他页面时,我必须为当前页面重建此布局。我正在考虑通过 AJAX 加载内容。
    • 这就是我所说的更多信息的意思。听起来是使用 AJAX 的好理由,@lonesomeday 的想法听起来值得研究。有什么特别的理由不在 Silverlight 中实施 RIA?
    • 有什么特别的理由不在 HTML/JS 中实现 RIA 吗? :-) 我们的开发者对 HTML/JS 比较熟悉,我看了这篇文章codeclimber.net.nz/archive/2010/09/02/…
    • 好点。我想,从我的角度来看,HTML5 浏览器的广泛部署比 Silverlight 还要遥远。我在投资银行工作,从 IE6 升级通常还需要 1 到 2 年的时间。不开玩笑。更别提Chrome了。我们无法广泛安装它。他们的升级周期非常缓慢,许多大公司也是如此。所以在我的世界里,Silverlight、Flash 和 Java 是 RIA 的唯一选择。尽管 jQuery 在某种程度上改变了这一点。感谢 jQuery。请务必让我们知道您如何使用 hashchange 插件。看起来很有趣。
    【解决方案2】:

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

    另一方面,您可以保留浏览器历史记录功能。这可以使用 URL 哈希来完成,例如http://www.example.com/#homehttp://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
    });
    

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

    【讨论】:

    • 感谢您的回复。该应用程序将是使用 javascript 组件框架的 RIA 应用程序,因此不会有没有 JS 的用户 :-) hashchange 插件看起来很有趣,我一定会看看它。
    • @user 如果您正在构建 RIA,您可能会对 hashchange 插件的老大哥 BBQ 感兴趣,它允许您在 location.hash 中存储大量信息。
    猜你喜欢
    • 2012-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多