Monday, March 19, 2007

Java Web 日记:Ajax(二)

几乎立刻的,遇到了跨浏览器的问题.为什么IE就这么不让人省心呢?不但创建XMLHttpRequest有一前一后两个方法,许多相关的属性和方法也无法应用,比如onprogress,onerror;最烦的是对待同URL请求的返回结果的处理.FF是重新请求responseText,而IE先在XML缓存在客户端的数据中查找是否有返回结果,如果有,直接用;没有则再请求服务器.平心而论,这两种处理方式没有正邪之分,但是绝大部分程序员要的是更新后的数据.因此,IE的做法真是天怒人怨(好吧,有点夸大,但至少也是"少数不明真相的群众"的愤怒吧?).就因为这个不兼容,前天的试验项目最终把我的异步回调功能给砍了!简直无比郁闷.

后来上网查了下,解决的方法,一是使用临时URL参数让请求看起来是新的;而是xmlHttp.setRequestHeader("If-Modified-Since","0");每次请求前清空XML缓存.

郁闷,真郁闷.微软这家伙,总是想把世界变成自己的.真希望它也有那么一天,困惑地倒在人民的口水里,喃喃道:"为什么?这到底是为什么?我什么都给他们安排好了,为什么他们不感激我呐?"

No comments: