首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AJAX或不AJAX

AJAX或不AJAX
EN

Stack Overflow用户
提问于 2011-08-12 04:21:44
回答 2查看 213关注 0票数 0

这个问题可能会结束,但我希望进行一点头脑风暴。

我正在为我的文章建立一个投资组合网站,我将把我所有文章的馈送直接从他们通过RSS馈送发布的网站上带来。

这个网站是由Wordpress提供支持的,所以我将使用短代码来列出文章来自哪些网站,我使用AJAX或PHP来引入RSS并解析它的问题。

我可以使用短码来设置div,并将RSS提要的url作为数据属性,data-content-url='',或者我可以简单地用PHP编写解析函数,然后直接从短码解析器链接它。请注意,我将为非js用户使用PHP进行解析,问题是我是否应该为AJAX的渐进式增强而烦恼。

AJAX有加速页面加载时间的好处,因为我可以加载页面,然后在之后引入提要,但当我在php中使用快捷键时,我突然想到,也许我应该在它的时候做所有的事情。老实说,我想做AJAX的主要原因是尝试使用.when.done的新的多请求应用程序接口

EN

回答 2

Stack Overflow用户

发布于 2011-08-12 04:28:00

对于任何询问他们是否应该使用AJAX的问题,我总是做同样的事情。

您应该以一种不依赖于AJAX的方式编写应用程序。这是很多原因,比如如果js被禁用了,或者如果其他东西出错了怎么办。当你假设每个人都启用了javascript,你仍然失去了大约5%的禁用它的人。最好的设计是使用AJAX作为网站的扩展。我这么说是什么意思?

代码语言:javascript
复制
<a href="some_page.html" ajax="true">To another page</a>

这是一个人需要的基本HTML。这里没有任何东西让用户需要javascript来使用它。

现在,为了改善启用了js的用户的上述体验,您可以这样做:

代码语言:javascript
复制
$("a[ajax=true]").click(function(){
  $("#content").load(this.url + " #content > *);
});

有了上面的设计,每个人都可以使用你的网站,启用了js的人会看到更好的体验。

还要注意,您可以使用.load()方法的强大功能来加载远程页面的一部分。这样你就不需要创建多个页面了。

票数 1
EN

Stack Overflow用户

发布于 2011-08-12 04:40:08

阿米尔提出了一些很好的观点。鉴于我目前正在从头开始对一个非常有价值的站点进行重建/重新设计,我们仔细考虑了AJAX的使用。虽然我倾向于在可能的情况下使用AJAX,但有两种情况是我不会使用它的,或者至少会确保有一个坚如磐石的后备。

不幸的是,第一个是Amir的例子。页面加载时应包含对提供整个页面的页面的实际请求。唯一我有时不这样做的地方是一个管理界面,那里没有关于SEO的担忧。虽然Amir确实建议在页面不能通过AJAX加载的情况下有一个后备,但在这种情况下,您实际上只是增加了站点和用户体验的复杂性(后退按钮将不起作用,或者您还必须使用一个处理浏览器历史的库来保留AJAX版本中的后退/前进功能)。

第二种情况下,我将尝试始终确保有一个后备是任何一种形式。无论是评论、计算器还是创收方面,表单都是用户与站点交互的重要方式。理想情况下,在可能和适当的情况下,表单应该使用AJAX完成(个人意见)。它通常会改善用户体验,因为你可以添加很好的加载gif等。良好的用户反馈是一个主要的优点,并且比非AJAX版本要好得多,在非AJAX版本中,他们只能看到浏览器在页面出现之前不断翻腾。

这就是说,由于表单是一个主要的交互点,你不能让它们中断,所以它们应该在没有AJAX的情况下总是 work。这甚至与禁用javascript的5%的用户(其中一些人实际上是开发人员在生产环境中测试他们的站点:-P )无关。如果你的javascript有错误怎么办?或者你使用了一个并不存在于所有浏览器中的函数,那么你的javascript错误在某些浏览器中又会怎样呢?在这些情况下,您希望您的表单仍然有效,因此确保它们回退到非AJAX版本非常重要。

我的建议是,总是在没有AJAX的情况下100%地构建你的站点,然后寻找你认为可以通过使用AJAX来改进的地方,并将其作为一个层添加到顶部。这会给你信心,在javascript下面,你的网站是坚如磐石的。

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

https://stackoverflow.com/questions/7032326

复制
相关文章

相似问题

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