2010-05-21 121 views
0

这是我在Windows和Mac上遇到的许多月很多个问题,这让我发疯。每当我在“调试器”指令中放置或在Safari脚本控制台中设置断点时,代码的一半时间都会中断,但代码视图是空白的;一些JS文件也是空白的,但不是全部。控制台告诉我我在线上并正确显示调用堆栈,再加上我可以遍历我的代码。我只是看不到脚本。我尝试刷新缓存并禁用缓存并更改JS文件(认为这可能是因为代码是在此时编译的)。似乎没有任何帮助。我知道如果我足够刷新调试器(右键单击并重新加载),最终我会看到我的脚本。但这是一个耗时的过程。而且我会使用不同的浏览器,但实际上我需要在这种情况下使用Safari。Safari JavaScript调试器始终为空

可能是一个因素的一件事是,我嵌套功能,并将匿名函数分配给变量(道格拉斯克罗克福德)。有没有其他人有这个问题?有没有人有办法解决吗?

[编辑]我刚刚注意到,当文件脱离远程服务器,它显示正常。然而,我的主要逻辑文件从我的本地LAMP堆栈离开虚拟主机,并且它们都是空白的。再一次,他们最终会出现。也许这是一个Apache的东西?

[编辑]这似乎与其他地方写的问题有关:例如"Resource interpreted as other but transferred with MIME type application/javascript"。问题是我已经通过我的http标头,我的<meta>标签和我的<script>标签,以确保mime类型是一致的。

当拉低JS文件,根据卷曲,我的HTTP标头:

< HTTP/1.1 200 OK 
< Date: Fri, 21 May 2010 13:04:42 GMT 
< Server: Apache/2.2.14 (Unix) mod_ssl/2.2.14 OpenSSL/0.9.8l DAV/2 PHP/5.3.1 
< Last-Modified: Fri, 21 May 2010 08:48:15 GMT 
< ETag: "dda3a6-2214-48716c07891c0" 
< Accept-Ranges: bytes 
< Content-Length: 8724 
< Cache-Control: no-cache 
< Content-Type: application/x-javascript 

...我的index.html有这样的头:

<meta http-equiv="content-script-type" content="application/x-javascript"> 

...我打电话给我的JS文件,像这样:

<script type="application/x-javascript" src="Application.js"></script> 

我在Safari的资源窗口中看到的警告是:

Resource interpreted as other but transferred with MIME type application/x-javascript 

Apache似乎在做一切正确!我会把它作为一个Safari错误提交,但它似乎只发生在我的本地服务器上。

回答

1

我想我已经隔离了这个问题,解决方法很简单:如果您需要调试,请关闭Safari中的资源选项卡;如果你需要跟踪资源,不要期望能够进行调试,因为你经常无法进行调试。

我认为这只是我的本地环境问题,但现在我已经看到很多网站现在已经开始测试的问题;我从来没有注意到,因为我没有尝试同时在其他网站上进行资源跟踪和调试。这必须是调试窗口的问题,因为这对浏览器窗口中的脚本执行完全没有影响;实际上,即使调试器可以跟踪断点和代码步进,它也不会告诉你正在执行的代码。这个问题没有出现在Chrome浏览器中,所以我猜这是一个Safari浏览器问题,而不是更广泛的webkit问题。

我会尽力将其发布到Apple的bug跟踪器。