2010-05-21 120 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跟蹤器。