JS奇怪问题的checkpoint

一些不经意的设置总能引发奇奇怪怪的现象,总结一下。

checkpoint 1

async: false

n多问题的始作俑者,例如layer.load()弹出加载层后调用了$.ajax({async:false, ...}),结果加载层在ie10下没出来,firefox和部分ie8没问题。究其原因,是因为加载层还没来得急弹出来,就同步提交了,然后浏览器就不响应了,加载层没机会出来了,然后就没有然后了。一个workaround是延迟1秒提交:

layerId = top.layer.load(0);
setTimeout(function (){
   $.ajax({async:false, ...});
}, 1000);

当然,指定async: true最好了。

(to be continued ...)

时间: 2024-11-04 13:01:22

JS奇怪问题的checkpoint的相关文章

vue.js - 奇怪的 event 对象

好久都没有写点东西了, 前段时间工作搞得头大,真的就是一起加班到死了.废话不多说,写这篇文章是因为这次因为 event 对象闹了一个乌龙,以此总结一下. 一.event 对象 (一)事件的 event 对象 你说你是搞前端的,那么你肯定就知道事件,知道事件,你就肯定知道 event 对象吧?各种的库.框架多少都有针对 event 对象的处理.比如 jquery,通过它内部进行一定的封装,我们开发的时候,就无需关注 event 对象的部分兼容性问题.最典型的,如果我们要阻止默认事件,在 chrom

js 奇怪的地方

1.0 + '' + 2.3 // 3.3 -Infinity + Infinity // NaN Infinity + n // NaN Infinity * 0 // NaN Infinity / Infinity // NaN Infinity % n // NaN Infinity % Infinity // NaN NaN && 'NaN' // NaN 'NaN' && NaN // NaN 'null' && null // null null

怪异JS错误的诊断与修复

h2{font-size:1.2em}p{text-indent:2em;}前端开发whqet,csdn,王海庆,whqet,前端开发专家 原文:JavaScript Errors and How to Fix Them 翻译:前端开发whqet, 意译为主,不当之处敬请指正. 作者简介:Jani Hartikainen,拥有十数年的网页应用开发经验,曾经为nokia和低调神秘的startups.(一个创业孵化公司)除了编程和玩游戏,他经常在自己的站点书写JS和高质量的代码. 译者的话,Java

一个奇怪的JS函数

今天在分析一个jQuery插件源码的时候,发现了一个奇怪的函数. // add leading zeros var pad = function(x){return (1e15+""+x).slice(-2)}; 首先1e15是什么意思? 也不是十六进制表示法. 不管三七21,直接F12打开命令窗口,执行下看看,结果是1后面有15个0. 原来1e15是科学计数法,表示1乘以10的15次方. var y=123e5; // 12300000 var z=123e-5; // 0.0012

奇怪的js回调混乱

今天发现一段代码,发生了奇怪的回调混乱现象 调用的API是这样的: api.method = function(sql, condition, successCallback, failureCallback){ // logic } 我们自己的业务代码调用了这个函数: var sql = "insert into xxxx"; var condition = {}; api.method(sql, condition, function(result){ // callback wh

JS 在 IE9 中出现奇怪的错误(参数是必选项 argument not optional)

最近发现之前运行正常的网站,在 IE9 下会报这个错误.网上查了一下,发现是跟我的方法名字有关... 我起了一个叫做 addFilter 名字的方法,但是很不巧,IE9 里也有一个这个名字的方法,所以冲突了... 只能改个名字了! 参考来源:http://blog.163.com/liangge_sky/blog/static/210500188201502801149744/

真是奇怪,js可以,jq却开启了多个定时器,谁能解答一下

timer = setInterval(mar,30); //鼠标移上去清除时钟 box.onmouseover = function(event){ clearInterval(timer); event.stopPropagation(); //这里是阻止冒泡,不加要冒泡到body上面,鼠标在body上面就会clearInterval(timer); box.onmouseout = function(event){ timer = setInterval(mar, 30); event.s

做一个手机端页面时,遇到了一个奇怪的问题:字体的显示大小,与在CSS中指定的大小不一致

最近在做一个手机端页面时,遇到了一个奇怪的问题:字体的显示大小,与在CSS中指定的大小不一致.大家可以查看这个Demo(记得打开Chrome DevTools). 就如上图所示,你可以发现,原本指定的字体大小是24px,但是最终计算出来的却是53px,看到这诡异的结果,我心中暗骂一句:这什么鬼! 随后开始对问题各种排查:某个标签引起的?某个CSS引起的?又或者是某句JS代码引起的.通过一坨坨的删代码,发现貌似都不是.我不禁又骂,到底什么鬼!不过中间还是发现了一些端倪:当页面中的标签数量或者文本数

js实现点气球小游戏

二话不说直接贴代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>点气球</title> </head> <body> <!-- 实现功能: js生成div 在页面上向上移动 已不同的速度 点击气球 气球爆炸消失 1.js生成div标签 并初始化 1 一次生成10个 2