位置: 编程技术 - 正文

setTimeout和setInterval的浏览器兼容性分析(settimeout和setinterval在安卓机无效)

编辑:rootadmin
无意中测试AJAXRequest浏览器兼容性的时候,发现AJAXRequest.update方法在某些情况下在IE里有问题,经过测试找到是setTimeout和setInterval的问题。 问题出现在当调用AJAXRequest.update方法时,如果带了更新间隔及更新次数,那么在IE下面就会出现问题,具体表现为带了更新间隔时是函数工作,带上更新次数时函数无法在更新指定次数后停止执行。 测试几个例子之后找到了问题所在,在IE里,setTimeout和setInterval是不支持参数传递的。 演示地址: 在Netscape的JavaScript参考中找到setTimeout的语法如下: 第二种使用方法就是定义了一个定时器,在执行时function时,将把调用setTimeout时定义的参数传递给function,但在IE中,并不支持这种方式的调用,也就是在执行function的时候,函数并没有接收到这些参数。如下面的例子: 在Firefox和Opera里,浏览器都能正确的弹出提示框显示字符串“my site: www.xujiwei.cn”,而在IE里,显示的则是“my site: undefined”,说明函数show并没有接收到参数str,所以显示出来就是一个未定义变量。 当然,如果在函数内部使用的变量是全局变量时,就不必要考虑这些问题,如:这段代码在IE和Firefox里都能正常工作,显示出“my site: www.xujiwei.cn”。 在变量是全局变量的情况下,可以使用语句段的方式来调用setTimeout,即使用第一种语法: 因为变量url是全局变量,因此定时器执行所定义的语句段“show(url);”能正确传递参数,但是如果url不是全局变量,而是一个局部变量时,执行结果就会出错了: 此时就会出错了,在函数test执行时,会提示url未定义,在执行定义的语句段“show(url);”时,上下文已经脱离了函数test,而url是在函数test内部定义的,所以在执行函数test的时候,变量url已经释放了。 如果要在setTimeout里面使用局部变量,并且解决在IE里的setTimeout不支持参数传递的问题,可以使用匿名函数,即在调用setTimeout时定义一个匿名函数,在这个函数内部进行原来需要进行的操作。 在上面的例子中,调用setTimeout时定义了一个匿名函数,它的函数体是“show(url);”,因为已经定义了函数,所以在定时器调用这个函数时,变量url还是有引用的,因些函数可以正确执行,显示出字符串“my site: www.xujiwei.cn”。 总的来说,使用setTimeout或者setInterval时需要注意以下几点: 1. 定义定时器时如果是使用的表达示,那么其中的变量应该是全局变量,或者是一个直接的值,而不能是局部变量。 2. 定义定时器时如果是定义的调用函数,那么应该只写函数名,而不能加括号,如果加了就是定义返回值了。 3. 在IE里使用定时器时不能传递参数。 4. 如果要在IE里使用定时器时传递参数,可以使用匿名函数,在函数体中调用原来该调用的函数。 如有错误还请指正。

推荐整理分享setTimeout和setInterval的浏览器兼容性分析(settimeout和setinterval在安卓机无效),希望有所帮助,仅作参考,欢迎阅读内容。

setTimeout和setInterval的浏览器兼容性分析(settimeout和setinterval在安卓机无效)

文章相关热门搜索词:settimeout和setinterval在用法上的区别,setTimeout和setInterval,settimeout和setinterval谁先执行,setTimeout和setInterval的区别,settimeout和setinterval谁先执行,settimeout和setinterval在用法上的区别,setTimeout和setInterval,setTimeout和setInterval的区别,内容如对您有帮助,希望把文章链接给更多的朋友!

整理的比较不错的JavaScript的方法和技巧第1/3页 适合阅读范围:对JavaScript一无所知~离精通只差一步之遥的人基础知识:HTMLJavaScript就这么回事1:基础知识1创建脚本块1:scriptlanguage=JavaScript2:JavaScriptcod

特殊数据的js四舍五入问题 特殊数据的js四舍五入问题2..0两数相乘:.四舍五入后结果是:.怎么回事啊?[Ctrl+A全选注:如需引入外部Js需刷新才能执行]比较

求得div 下 img的src地址的js代码 目的:求得div下img的srchtml:divid="image1"imgsrc="loading.gif"//divdivid="image2"imgsrc="loading.gif"//div..divid="image"imgsrc="loading.gif"//div我的错误代码:initImage();loadImage();

标签: settimeout和setinterval在安卓机无效

本文链接地址:https://www.jiuchutong.com/biancheng/384822.html 转载请保留说明!

上一篇:Javascript学习指南(javascript要怎么学)

下一篇:整理的比较不错的JavaScript的方法和技巧第1/3页(整理的什么)

  • 劳务合同印花税税目
  • 小规模纳税人收到专票后如何处理
  • 退货开具红字发票销项税为负数税务局会查吗
  • 残保金滞纳金能超过本金吗
  • 个人商业保险抵交个人所得税
  • 开票时间超限怎么办
  • 短期借款属于经营性资产吗
  • 公司为员工购买社保证明
  • 可供出售金融资产是指什么
  • 二手车买卖如何交税
  • 发生哪些情形的应判定为重大电力安全隐患
  • 运输业务增值税
  • 开立基本账户所需资料
  • 事业单位劳务派遣工作值得去吗
  • 应付票据保证金的会计分录怎么写
  • 补交以前年度印花税记到哪个会计科目
  • 多计提的工资怎么处理?
  • 当月未开发票增值税怎么报
  • 签发票据是什么行为
  • 招行理财产品哪些可靠
  • 外地预缴个人所得税如何入账及申报
  • 长期借款费用资本化
  • 小规模开票后的分录怎么做
  • 委托代销商品委托方发出商品的分录
  • 支付教育培训费
  • 公司哪些发票可以抵税
  • 技术发明案例
  • 退回社保费的会议记录
  • 简易计税发票如何抵扣
  • 出口退税服务
  • 小微企业工业企业认定标准
  • 电子商务如何做账
  • 新成立公司开票能开多少个点的发票
  • scchost.exe - scchost是什么进程 有什么用
  • 查账补交以前年度印花税分录
  • 固定资产残料收入的账务处理
  • PHP:imagefontheight()的用法_GD库图像处理函数
  • 社保代扣代缴会计分录怎么做
  • 数据库impala
  • densenet详解
  • 商业模式诠释了一个企业如何赚钱
  • JavaScript之Ajax-axios表单提交
  • 每个开发人员都有编制吗
  • Editorial Calendar为你的WordPress添加编辑日历 让文章定时发布更简单
  • HTTP Tunneling (HTTP Proxy Socket Client)
  • 个税多计提了账务处理
  • mysql 5.7.20 win64 安装及配置方法
  • mongo db数据库
  • 应收账款收不回来做坏账处理分录
  • 以土地使用权投资入股
  • 个人工作室需要做账吗
  • 公司向股东借的钱怎么还
  • 月收入一万该怎么说
  • 收据上面盖公章有用吗
  • sqlalchemy mongodb
  • 年底做账流程
  • 对外销售产品会计分录
  • 车辆购置税如何计算器
  • 年底员工借款如何处理
  • 经营性应付项目减少对经营活动现金
  • 销售已经使用过的固定资产税率
  • 部门财务独立核算原则有哪些
  • mac os怎么删除用户
  • 苹果mac安装win10系统
  • SsAAD.exe - SsAAD是什么进程
  • config是什么文件夹
  • 电脑win10显卡驱动
  • Cocos2dx3.2 Crazy Tetris 绘制不规则方块 遮罩(ClippingNode的使用)
  • linux 查找后缀名文件
  • 怎么配置nodejs的环境
  • javascript教程完整版
  • python嵌套列表怎么遍历
  • 异地如何拨打12393
  • 西安税务稽查局举报中心
  • 社保ukey怎么使用
  • 税务局解决户口吗
  • 湖北商铺契税2021年新规
  • 河南政务服务网官网
  • 南京税务服务热线
  • 国税系统三方协议
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设