首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >调试JS文件-客户端代码

调试JS文件-客户端代码
EN

Stack Overflow用户
提问于 2014-05-20 14:17:44
回答 3查看 64关注 0票数 0

有没有什么简单的方法可以让我们知道方法在运行时被调用的顺序?

示例:在我的JS文件中,我有大约15个方法。有一些异步调用。对于异步调用,我们永远不知道它们被调用和执行的顺序。所以:我想知道,是否有一种方法可以调试(使用开发人员工具,IE\Chrome\FF)。任何工具,它告诉我哪个异步调用是首先被调用的,以及它们被调用的顺序。

谢谢。

EN

回答 3

Stack Overflow用户

发布于 2014-05-20 14:25:55

使用Chrome开发人员工具,您可以使用源代码面板来调试javascript。

在右侧,您可以为各种类型的事件添加断点,包括XHR断点。

当触发断点时,执行将停止,您可以单步执行整个执行流程。

我很确定Firefox和IE有类似的工具。

票数 2
EN

Stack Overflow用户

发布于 2014-05-20 14:22:29

正如ryan S建议的那样,使用console.log可以是检查代码执行顺序的一种方式。所以你可以添加console.log("1: description")。

票数 0
EN

Stack Overflow用户

发布于 2014-05-20 14:48:01

除了给定的答案之外,您还可以编写一个实用程序,它将使用日志记录包装对象的方法:

应该是这样的:

代码语言:javascript
运行
AI代码解释
复制
function addLogging(object) {   
    Object.keys(object).forEach(function (key) {
        if (typeof object[key] === 'function') {
            var originalFn = object[key];
            object[key] = function () {
                console.log('before calling', key);
                var result = originalFn.apply(this, arguments);
                console.log('after calling', key);
                return result;
            }
        }
    });
}

您可以使用lodash wrap方法来帮助您。

很久以前,我回答了一个类似上面代码的问题:jQuery logger plugin

它没有很好地处理构造函数,所以它有这样的问题。这是fixed resulting code

你也可以看看sinon.js,它提供间谍,它可以决定间谍函数的调用顺序。但是仅仅是这样可能就有点太多了,而且它可能会让事情变慢一点。

这种方法在aspect oriented programming中是很常见的。您可以对其进行搜索,也许可以尝试使用AOP库。meld是一个很流行的工具。

此外,您可以使用console.timeline来代替chrome中的console.log,如果使用得当,它将为您提供更好的可见性。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23762311

复制
相关文章
js中settimeout和setInterval区别_JavaScript set
注:调用过程中,可以使用clearTimeout(id_of_settimeout)终止
全栈程序员站长
2022/11/09
1.9K0
JavaScript 定时器 setTimeout、setInterval
定时器在javascript中的作用 1、制作动画 2、异步操作 3、函数缓冲与节流 定时器类型及语法 示例代码如下: /* 定时器: setTimeout 只执行一次的定时器 clearTimeout 关闭只执行一次的定时器 setInterval 反复执行的定时器 clearInterval 关闭反复执行的定时器 */ var time1 = setTimeout(myalert,2000); var time2 = setInterval(
Devops海洋的渔夫
2019/05/30
9860
JavaScript如何用setTimeout模拟setInterval
思路就是递归调用 function myInterval(fun,time){ function inside(){ fun(); setTimeout(inside,time); } setTimeout(inside,time); } myInterval(fn,1000); function fn(){ console.log('嘿嘿'); }
henu_Newxc03
2022/05/05
9440
javascript中的setTimeout() 方法和clearInterval() 方法和setInterval() 方法
语法 setTimeout(code,millisec) 参数 描述 code 必需。要调用的函数后要执行的 JavaScript 代码串。 millisec 必需。在执行代码前需等待的毫秒数。 提示和注释 提示:setTimeout() 只执行 code 一次。 <html> <head> <script type="text/javascript"> function timedMsg() { var t=setTimeout("alert('5 seconds!')",5000) } </scrip
用户7657330
2020/08/14
1.3K0
setTimeout和setInterval
setTimeout(methodName, interval); //间隔时间单位为毫秒,表示interval毫秒后执行方法methodName
tandaxia
2018/09/27
2K0
setTimeout和setInterval
新建 html 文件 21-setTimeout.html ,编写下方程序,运行看看效果吧
鹤川
2023/03/21
1.1K0
javascript当中时间控制setTimeout和setInterval的用法
9.时间控制setTimeout和setInterval 马克-to-win:下个例子说明每秒刷新时间如何实现。(利用setTimeout方法): setTimeout和setInterval的区别是:setTimeout只执行1次,而setInterval可以无限执行。 例 1.9.1(setTimeoutIEFF.html) <HTML> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"/> <SCRIPT LANGUAGE="JavaScript"> <!-- function time() { var now = new Date(); var y = now.getFullYear(); var m = now.getMonth()+1; var d = now.getDate(); var x = now.getDay(); var hour = now.getHours(); var day =new Array("日","一","二","三","四","五","六"); var xingqi = day[x]; var mi =now.getMinutes(); var s = now.getSeconds(); var t =document.getElementById("t"); t.innerHTML="今天是"+y+"年"+m+"月"+d+"日"+"星期"+xingqi+","+hour+":"+mi+":"+s; setTimeout("time()",1000); } //--> </SCRIPT> </HEAD> <BODY οnlοad="time()"> <div id="t"></div> </BODY> </HTML> setInterval&clearInterval
马克java社区
2021/01/18
6460
javascript当中时间控制setTimeout和setInterval的用法
JavaScript定时调用函数(SetInterval与setTimeout)
setTimeout和setInterval的语法相同。它们都有两个参数,一个是将要执行的代码字符串,还有一个是以毫秒为单位的时间间隔,当过了那个时间段之后就将执行那段代码。
aehyok
2018/09/11
1.5K0
setInterval 和 setTimeout 用法
setInterval 定时器,开始执行后,每间隔指定时间执行一次,除非清除定时器 用法: setInterval(function(){ 方法… },1000);// 间隔时间 setTimeout 是在指定的时间后,执行该事件 用法: setTimeout(function(){ 方法…. },1000); clearInterval(); // 清除定时器 <html> <head> <title>js</title> </head> <body> <script> test();
IT架构圈
2018/06/01
1K0
使用setTimeout模拟setInterval
相信setInterval这个东西大火都比较熟了,这里不做关于它的介绍,而是关于本文是如何实现这一功能。
kifuan
2022/10/24
1.8K0
利用setTimeout和SetInterval构建Javascript计时器
看到了一篇深入浅出的讲解setTimeout和setInterval的例子,直接讲英文贴出来吧,也不是很难。
大江小浪
2018/07/24
8080
深度解密setTimeout和setInterval——为setInterval正名!
重复定时器,JS有一个方法叫做setInterval专门为此而生,但是大家diss他的理由很多,比如跳帧,比如容易内存泄漏,是个没人爱的孩子。而且setTimeout完全可以通过自身迭代实现重复定时的效果,因此setIntervval更加无人问津,而且对他退避三舍,感觉用setInterval就很low。But!setInverval真的不如setTimeout吗?请大家跟着笔者一起来一步步探索吧!
小美娜娜
2019/04/04
4K0
深度解密setTimeout和setInterval——为setInterval正名!
Vue中 使用定时器 (setInterval、setTimeout)[通俗易懂]
js中定时器有两种,一个是循环执行 setInterval,另一个是定时执行 setTimeout。
全栈程序员站长
2022/11/10
7.7K0
Vue中 使用定时器 (setInterval、setTimeout)[通俗易懂]
setTimeout实现setInterval和clearInterval[通俗易懂]
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/09
4990
为什么要用 setTimeout 模拟 setInterval ?
在[JS 事件循环之宏任务和微任务](../Performance/JS事件循环之宏任务和微任务.html)中讲到过,setInterval 是一个宏任务。
九旬
2021/01/06
1.2K0
js中settimeout和setinterval的区别是什么?
javascript的setTimeOut和setInterval函数应用非常广泛,在网站中经常用来处理延时延时和定时任务,比如打开网页一段时间后弹出一个登录框,页面每隔一段时间发送异步请求获取最新数据等等。但它们的应用是有区别的。
跟着阿笨一起玩NET
2020/09/16
1.5K0
js中的this关键字,setTimeout(),setInterval()的执行过程
var test1 = { name: 'windseek1', showname: function () { console.log(this.name); } } var test2 = { name:'windseek2', showname: test1.showname } test2.showname() 运算结果是windseek2,由于test2.showname=test1.showname所以test2.showname()=test1.showname(); test2.shown
windseek
2018/06/14
1.3K0
为什么要用 setTimeout 模拟 setInterval ?
来源:九旬 https://segmentfault.com/a/1190000038829248
@超人
2021/02/26
1.2K0
为什么要用 setTimeout 模拟 setInterval ?
第46天:setInterval与setTimeout的区别
js的setTimeout方法用处比较多,通常用在页面刷新了、延迟执行了等等。今天对js的setTimeout方法做一个系统地总结。
半指温柔乐
2018/09/11
1.3K0
点击加载更多

相似问题

JavaScript setTimeout setInterval

21

Javascript setTimeout/setInterval

20

setInterval Javascript中的javascript睡眠....setTimeout

22

javascript - setTimeout() vs setInterval()

30

JavaScript setTimeout和setInterval

15
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文