Ajax链接的最佳HTML结构

时间:2011-02-09 04:55:44

标签: javascript ajax event-handling onclick

当使用javascript将onclick处理程序分配给HTML <a>标记时,在使用Ajax时我有一个特定的问题 - 获取URL到ajax请求的最佳方法是什么?我应该使用this.href还是将其编码到处理函数本身?

请考虑以下链接:

<a id="link" href="http://mysite.com/getData.php">Get Data</a>

然后,javascript:

document.getElementById('link').onclick = function() { 
   // Send ajax request
}

我喜欢在处理程序中使用this.href,但我担心在domready触发之前点击链接并激活链接的用户。是否更好在HTML中使用href="javascript:void(0);"然后在处理程序本身中构造URL?这样,除非激活链接,否则链接将不执行任何操作。这里最好的做法是什么?

谢谢,Brian

1 个答案:

答案 0 :(得分:2)

从这个角度考虑一下:如果没有启用JS,你的页面架构会如何支撑?

您的应用程序应该在任何情况下响应用户输入,并且不应该依赖于关于用户是否具有支持Javascript的浏览器的隐含假设。听起来很荒谬吧?好吧,我有很多客户为大型团队工作,桌面配置都被锁定,所以每个人都在运行IE6,并设置了一些非常严格的设置。

因此,如果没有启用Javascript,你的锚标签的href属性应该指向你希望用户去的位置(你应该为你的AJAX功能做一个回避,基本上会做同样的事情事情)。在你的onclick处理程序中,你应该指定AJAX调用的URI。

当完成所有操作后,启用了JS的用户(将成为大多数用户)将点击你的onclick处理程序,在该处理程序中你有AJAX XHR调用的URI,并且没有启用JS的用户将被重定向到另一个达到同等效果的页面。