如果 Chrome 调试器不断清除源代码,如何在 Chrome 上调试 Javascript?

问题描述 投票:0回答:1

我正在使用 Flask 在 Google Cloud Run 上提供模板,该模板具有事件处理程序和脚本,可将 Ajax 调用回 Flask 服务器。有很多搞砸的机会,但我一直在嗡嗡作响,直到几天前我进行了升级:-(

我知道,如果我提供了损坏的 Javascript(例如“False”而不是“false”),那么不仅会得到一个标记错误的 console.log,而且还会发现 DevTools 源选项卡中的行全部是空白的。这是令人沮丧的,也是许多 StackOverflow 帖子的主题。

我的情况略有不同,因为我在控制台中没有标记错误,但也没有源数据。我可以放置大量 console.log() 语句并“推断”一切显然都工作正常。除了,没有来源。

单击 console.log 的文本不会显示源代码。将“调试器”作为 Javascript 的第一行也不行。禁用缓存和刷新浏览器没有任何作用。如果我在本地服务器上运行 Flask 而在 Cloud Run 上运行 Gunicorn,则会重复该行为。

如果我将模板渲染到文件并从虚拟 Flask 模板提供该文件,那么我会在调试屏幕中看到源代码(尽管没有按钮等)。源代码约为 10MByte,许多 Javascript 行每行有 10,000 个字符,因此我编写了代码来将 HTML“自动换行”至每行约 100 个字符。那个练习很痛苦,而且也没有帮助。

我认为 Flask 一定会在“实时”仪表板上发送某种标头,鼓励 Chrome 删除源代码,并且当我要求它提供从文件读取的 html 服务时,它不会发送相同的标头。是否有一些关于 Chrome DevTools 如何(以及何时)从服务器获取 javascript 的文档?

如果我可以创建一个最小的工作示例,我将上传。

谢谢,

javascript python flask google-chrome-devtools
1个回答
0
投票

HTML 源代码是计算机生成的,包含几行极长的 JavaScript,没有回车符。我编辑了生成该脚本的代码,以确保没有一行超过 100 个字符左右。

没有解决问题的原因是我在“智能分割”逻辑中引入了一个错误。有时在 javascript 中,将“,”转换为“,”是安全的,但其他时候(例如,如果逗号位于字符串内)那么这显然是错误的。我以为我的“智能分割”已经捕获了所有内容,但是有一行 javascript 来创建一个 csv 文件,其中包含“....charset=utf-8,...”行,这看起来是一个完美的放置位置但事实并非如此。

无论如何,现在每行 javascript 源代码的大小都是合理的,并且已插入到脚本的有效部分,那么 Chrome 调试器会再次满意。

© www.soinside.com 2019 - 2024. All rights reserved.