FF&Chrome中的AJAX

来源:互联网 发布:excel表格数据合并计算 编辑:程序博客网 时间:2024/05/20 07:36

在国际化测试过程中,不知你是否遇到过这样的情况?用FF访问某一页面时候,发现该页面已被完美的本地化;而换到了Chrome之后,问题出现了,整个页面依然充斥着英文。(语言设置没有问题!)

  

有人说,那就清理一下cache呗!非常好,说做咱就做,不过……清理完之后发现Chrome页面没任何变化,让大家失望了,这可如何是好?

 

反思这两个测试用例,除了浏览器的差异,操作步骤没有任何不同,那么该问题应该可以进一步转化为——FF跟Chrome有何区别?抢答开始。

甲:二者内核不一样啊,FF是Gecko,Chrome 用 Webkit!

乙:FF启动后进程只有firefox.exe+ plugin-cuntainer.exe两个,而Chrome每个页面都有一个进程,每个插件、每个扩展又各一个进程!

丙:FF更开放,Chrome浏览速度更快!

 

OK 大家说的都对,但这跟国际化有何关系呢?

甲:……

乙:……

丙:都看我干吗?o(╯□╰)o

 

其实问题应该定位在二者JavaScriptEngine上,尝试着总结如下吧,不足之处,还请各位指正。

1.      获取鼠标的坐标时,FF不支持event.x,代之以event.screenX

2.      FF不能在JS中直接使用event对象,必须将event传递给JS方法再使用

3.      FF使用document.documentElement.scrollTop能够获取滚动的高度,但Chrome代之以document.body.scrollTop

4.      动态添加文本innerText对FF无效,应该代之以innerHTML

5.      FF上获取不到formname,只能用document.formname来获取表单对象

6.      Chrome只支持AJAX异步读取数据,同步被抛弃

 

根据多年游戏经验,最后出场的一般都是大boss!走读示意代码,果然有嫌犯async: false 八成就是他,果断删除,转而用异步方式读取翻译文件,噔噔噔噔~~~问题解决!

/** * Load language JSONfile according to browser's locale setting using * AJAX synchronouscall. */url = '../locale/' + this.locale + '.json';$.ajax({   type:"GET",   url: url,   dataType:"json",   async: false,   cache: false,   success:function(data) {      if (!!data) {        self.translatedTable = data;      } else {        JSLogger.error('Invalid translation data: ' + url);      }   },   error:function(jqXHR, textStatus, errorThrown) {     JSLogger.error('Failed to load translation data: ' + url +         ', status: '+ textStatus + ', errorThrown: ' + errorThrown);   }}); 

尘埃落定,但从这个故事中,我们又可以学到什么呢?(尤其是国际化测试人员),个人认为至少有两点吧。

1.      涉及资源文件读取的部分,询问清是否采用了AJAX技术,同步还是异步,从而再制定matrix,而不仅仅是凭经验

2.      多探索各个平台,各个浏览器对国际化的影响,不要只为了遍历制定的matrix而遍历

1 0
原创粉丝点击