drduan / minggeJS

857 stars 143 forks source link

███ 1.9.6.2发布 ███ #231

Open mingge8888 opened 8 years ago

mingge8888 commented 8 years ago

ps 1.9.6.2版本-------------

1: .extend 机制变更,多参数时,第一个参数的内存指针不再被复制,而是随程序执行而改变

2:JSONP,微量BUG修正!

3:各API再次微调,不详

因为更新间隔比较短,修复不多,所以这次的版本号依然是1.9.6 后面多一个2 。 ----》 版本号: 1.9.6.2

更新时间:2016年3月21日19:30分。

xqin commented 8 years ago
  1. 代码呢?
  2. 还微量BUG修复, JSONP 设置的超时时间无效, 居然说是微量BUG? 不过也确实是微量BUG, 因为压根就没人使用的你MingGeJS(除了你自己).
mingge8888 commented 8 years ago

http://www.shearphoto.com/bbs/forum.php?mod=viewthread&tid=41

xqin commented 8 years ago

怎么不PUSH到github上?

mingge8888 commented 8 years ago

上班晚上吧

xqin commented 8 years ago

能传论坛,就不能PUSH到Github上? 一个 git push不就完事了, 连网页都不用打开.

再另外跟你说个事, 你在 catch 中使用 console.log 连个判断都没有, 在旧版本的IE中没有这个 console 对象的, 所以当代码跑到 catch 中的时候, 会继续出错.

mingge8888 commented 8 years ago

我定义了的,你没看到而已,IE 678 深度测试的,IE 678我看得很重的

mingge8888 commented 8 years ago

if (!window.console || !console.log) { window.console = { log: function(e) {} }; }

2753行

xqin commented 8 years ago

嗯, 在最下面找到代码了. 关于你新改之后的 1.9.6.2 仍然有问题.

还是我昨天发的代码, 你把你的 1.9.6.2 JS套进去, 然后看控制台. error 事件是会触发了. success 没有触发, 这些都是正确的.

但问题是, 在这种情况下, 你没有把之前生成 callback 指向一个空的函数, 从而导致当这个请求真正回来的时候, 浏览器报错了.

image

mingge8888 commented 8 years ago

这个没有必要了,逻辑正确就可以。

你这个报错没法控制的,如果输出的不是js语法,你同样也是报错的,还有这种情况是很合理的,程序没有被阻塞就ok

mingge8888 commented 8 years ago

他超时5分钟,我的空函数岂不是要继续驻留5分钟,这样更不合理

xqin commented 8 years ago

这个是正常情况, 你说的是非正常情况(即不符合JSONP的要求).

而这个是符合要求, 但请求超时, 最终因为你的代码导致的出错的.

要处理这个问题也很简单, 在jsonp的error中 不直接删除,而是将它指向一个自删除的函数. 这样当那个 请求回来 之后, 调用这个函数, 完成删除功能.

mingge8888 commented 8 years ago

你要理解超时,你一超时,我的逻辑就不会再等你,我的函数就会注销,因为你超时我任务完成了!假如你超时十分钟,我岂不是继续等你,十分钟后你有结果当然好,问题你十分钟后,报服务器端超时错误,这时候输出来的不是js语法, 控制台一样报错,还让我的 空函数白等你了

xqin commented 8 years ago
  1. 请求是你的JS代码发出的.
  2. 后端输出的回调函数名是你指定的.
  3. 在超时之后,你把回调的函数整死了.
  4. 你没有放弃之前的请求.
  5. 在请求回来之后, 又因为你把回调函数整死了, 所以没有那个函数了, 然后就出错了.

有一个 jquery-jsonpjQuery 插件解决了这个问题. https://github.com/jaubourg/jquery-jsonp

mingge8888 commented 8 years ago

这个报错合理的,绝对不会造成程序阻塞。顶多控制台外观问题-不好看

https://github.com/jaubourg/jquery-jsonp,你这个插件没用,我想他控制台报错,故意写错后端代码,他还能纠错?

mingge8888 commented 8 years ago

超时就应该关闭逻辑,报错也是控制台外观问题

xqin commented 8 years ago

我现在和你讨论的是 后端返回的时候 超时了(超时了前端指定的时间), 但返回的是正确的JS代码的情况下, 你怎么老往返回的不是JS的代码的话题上扯呢?

返回的不是JS代码,那它就不是JSONP, 自然也就不在这个话题之内. 你怎么老往返回的不是JS的代码的话题上扯呢?

返回的不是JS代码,那它就不是JSONP, 自然也就不在这个话题之内.

mingge8888 commented 8 years ago

经过五分钟的快速分析,不是BUG! 宣布结贴!

Naville commented 8 years ago

@mingge8888 建议先学会issues是干什么用的,还有issues有关闭不需要您“结贴”

mdzz