JSLite / JSLite

与jQuery有着类似的api,让web开发更迅速,下载执行更快、量级更轻,针对现代高级浏览器的JavaScript库。

Home Page:http://jslite.github.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

三星Note 2 Android ajax无法发起

hqzxzb opened this issue · comments

最近在使用的时候,在三星note2(android 4.3)原生浏览器页面中发起ajax请求,抛出了异常,
ReferenceError:name is not defined。
根据错误提示,定位到JSLite.js原始代码为:
for (name in headers) nativeSetHeader.apply(xhr, headers[name]);
在JSLite.min.js中是对应这行代码压缩后的代码报错。

根据实验,使用未压缩的JSLite.js可以正常运行,但是使用压缩好的JSLite.min.js会抛出异常。

然后我通过在线JS压缩工具压缩JSLite.js,这样压缩后的js也可以正常运行。

所以怀疑是不是压缩时的一些策略会导致Android系统的原生浏览器(Android版微信浏览器存在同样的问题)上出现问题。

@hqzxzb 这个可能是压缩没有同步?那可能我要换压缩工具了。

@jaywcjlove 我测试的时候发现那一行代码本身并没有多少变化,只是换了变量名,所以有可能是其他地方被压缩了什么内容或替换了写法,引起Android上的异常。

@hqzxzb 哪个变量名换了,晚上我研究研究去

@jaywcjlove
JSLite.js:
for (name in headers) nativeSetHeader.apply(xhr, headers[name]);
JSLite.min.js:
for(name in v)y.apply(g,v[name]);

@hqzxzb 知道了,今晚看一下。

@hqzxzb nativeSetHeader 这个是我声明的变量,压缩工具自动优化。bug 已修复