2010-10-26 57 views
2

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

我想知道是否有任何缺点和优点,选择这种模式的Web应用程序。

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

回答

3

两个可能的缺点是,它可以使用户难以书签您的网站内容和困难搜索引擎区分网站上的网页。

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

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

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

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

    etc 

这确实是唯一适当的,如果你有很多的内容,或者内容涉及耗时的计算,如金融网站。在大多数情况下,只需要正常加载您的页面将您的内容分解成分页块将会更轻松。

+0

我正在使用一个javascript组件库,它构建了一个漂亮的桌面应用程序,用于查看布局。问题是,当我去任何其他页面我必须重建此当前页面的布局。在那里我想通过AJAX加载内容。 – user137348 2010-10-26 10:57:24

+0

这就是我所说的更多信息。听起来这是使用AJAX的一个很好的理由,而@ lonesomeday的想法听起来很值得研究。没有在Silverlight中实现RIA的任何特定原因? – 2010-10-26 11:08:37

+0

任何不以HTML/JS实现RIA的特殊原因? :-)我们的开发人员更熟悉HTML/JS,我阅读这篇文章http://codeclimber.net.nz/archive/2010/09/02/Is-Silverlight-becoming-a-niche-technology.aspx – user137348 2010-10-26 11:15:13

1

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

另一方面,你可以可以保持浏览器的历史功能。这可以使用URL散列完成,例如, http://www.example.com/#home vs http://www.example.com/#about-us。要做到这一点,最好的办法是让本Alman的hashchange plugin然后使用hashchange事件:

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

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

这将允许用户使用历史记录功能和他们的浏览器的书签添加函数。请参阅他网站上的文档以获取更多信息。

+0

感谢您的回复。该应用程序将是使用JavaScript组件框架的RIA应用程序,所以不会有没有JS的用户:-) hashchange插件看起来非常有趣,我一定会看看它。 – user137348 2010-10-26 10:54:11

+0

@user如果您正在构建RIA,您可能对hashchange插件的大哥[BBQ](http://benalman.com/projects/jquery-bbq-plugin/)感兴趣,它允许您存储很多在'location.hash'中的信息。 – lonesomeday 2010-10-26 10:58:22