AJAX的问题:MVC与SEO
尽管很讨厌AJAX这个名字,而且还不知道这个东西到底该怎么去读。但是既然都用这个词来代表那个东西,尽管讨厌它,也不得不用。
我觉得AJAX不宜在一个网站中大规模的使用,朱德基于用户的角度表达过这样的忧虑。其他的,从MVC和SEO这两个方面来说,AJAX也不宜过度使用。
从MVC角度看,在网站的设计实现过程中,都会考虑到MVC的因素,会使用大量模版。而如果页面(或者是页面的主题内容部分)是通过AJAX方式来加载的,那么服务器端返回的数据对象在客户端通过JS的形式接收,然后需要通过JS来完成拼装并显示。那么在JS拼装的过程中就会背离原来的模版机制,需要将拼装的样式通过JS的形式写死。如果有大量的页面使用了AJAX,且不说使用JS来组织HTML页面有多麻烦,单是其对MVC原则的破坏就会留下一些后患。这里我不知道除了通过JS输出HTML来输出页面还是否有其他的办法,有没有办法来实现AJAX下的MVC并能和整体的MVC达到统一。
从SEO角度来看,由于页面是动态拼装的,那么对搜索引擎的爬虫来说,似乎没有机会来执行这些AJAX程序,那么页面的精华部分将不会被搜索引擎索引到。这样对SEO比较致命。
AJAX的应用应该有其特定的场合,可能是用在操作密集的场合更合适一些,这样的场合有用户较多的操作行为,但是不会有大量的数据输出和组装。既能体现AJAX灵活的互动,又不对上面两个方面产生影响。[@more@]
还有JST
在这片文章中,提到了可使用JST(JavaScript Template)的方式来组织页面:
http://www.blogjava.net/mechiland/archive/2005/12/30/25984.html
Ajax对搜索引擎爬虫不友好
至少目前是这样的。
关于Ajax的毛病,这儿有几个,但不敢尽同。
http://swik.net/Ajax/Ajax+Mistakes
不过Google对于简单的Javascript内容倒是可以搜索,比如很明显的document.write输出的内容。这儿:http://www.putee.com/blog/post/67.html