如何在使用外来JavaScript时发现问题

How to find an issue when using foreign JavaScript?

本文关键字:JavaScript 发现问题      更新时间:2023-09-26

我的问题很普遍:我知道我在某个地方遇到了JavaScript问题。现在我不知道如何开始搜索问题所在。通常我使用内置的Firefox或Firebug调试器。我一般都知道如何使用它。但我不知道从哪里开始。我应该在哪里设置断点?我经常遇到这种问题。

举个例子,这是我目前的问题:我有一个页面,上面有一个无序的列表。由于某种原因,每秒钟的列表项都是空的。我可以看到页面加载了正确的列表项。但随后一些JavaScript似乎添加了这些空项。这是一个Yii应用程序,它可以直接在HTML中插入一些JavaScript,但也可以让浏览器加载jquery.js、bootstrap.js和Yii.js。我还没有添加任何自己的JavaScript。

现在,正如我所说,我不知道从哪里开始发现问题。可能是我在某些配置上做错了什么。但它也可能是bug。我只是想弄清楚。

对于我目前的问题,最好在onInsertEmptyListItemToCounfuseDeveloper()这样的函数上设置断点。。。

我不想解决我目前的问题。我想知道在哪里以及如何开始发现与JavaScript相关的问题。尤其是使用第三方JS。对于一些应用程序(CMS、商店…),有时会有很多JS文件。这会使情况变得更糟。

我希望这个问题是可以回答的,你可以提供一些经验。

现在不谈论CMS,但通常我的方法是

1) 如果你没有添加任何onw脚本,只添加第三方,请将它们删除到你的所有项目中。你已经添加了jquery.js、bootstrap.js、yii.js,所以你删除了它们,然后测试它们是否都正常,如果正常,添加第一个,对我来说应该是jquery.jss,再次测试,如果没有可见的bug,添加第二个,以此类推。在这种情况下,你会看到哪个文件中有一些bug或某种意外行为。

2) 这是最糟糕的部分,在找到的文件中你应该找到有问题的部分。所以,下载完整版本,而不是生产版,在编辑器中打开它,然后开始搜索。。。好消息是,您不必查看所有文件,只需在devtolds或firebug中找到事件侦听器并跟踪它们即可。

所有这些都只是我的经验,所以如果有人知道更好的方法,我也想听听。

这将取决于代码。通常,如果我有一个可疑的函数,我会在函数的开头和结尾放置断点或console.log(),看看两者是否都执行了。然后我按照逻辑往下看,找出哪一块坏了。不过,这确实取决于代码。