Это проблема, с которой я сталкивался на Windows и Mac много-много месяцев, и это сводит меня с ума. Всякий раз, когда я добавляю директиву «отладчик» или устанавливаю точку останова в консоли сценариев Safari, более половины времени код ломается там, где он должен, но представление кода пустое; некоторые файлы JS также пустые, но не все. Консоль сообщает мне, на какой линии я нахожусь, и правильно отображает стек вызовов, плюс я могу просмотреть свой код Я просто не вижу сценарий. Я попытался очистить кэш, отключить кэш и изменить файлы JS (думая, что это может быть из-за того, что код скомпилирован в этот момент). Кажется, ничто не поможет. Я знаю, что если я достаточно обновлю отладчик (щелкните правой кнопкой мыши и перезагрузите), в конце концов я увижу свой сценарий. Но это трудоемкий процесс. И я бы использовал другой браузер, но на самом деле мне нужно использовать Safari в этом случае.
Одна вещь, которая может быть фактором, заключается в том, что я вкладываю функции и назначаю анонимные функции переменным (как Дуглас Крокфорд). Кто-нибудь еще сталкивался с этой проблемой? У кого-нибудь есть решение?
[Редактировать] Я только что заметил, что когда файл приходит с удаленного сервера, он показывает нормально. Мои основные логические файлы, тем не менее, выходят из моего локального стека LAMP с виртуального хоста, и они ВСЕ пустые. Опять же, в конце концов они появятся. Может быть, это вещь Apache?
[Редактировать] Это, похоже, связано с проблемой, написанной в другом месте: например, "Ресурс интерпретируется как другой, но передан с приложением / javascript типа MIME" . Проблема в том, что я проверил мои http-заголовки, мои <meta>
теги и мои <script>
теги, чтобы убедиться, что типы MIME согласованы.
При извлечении файла JS, согласно curl, мои 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, но, похоже, это происходит только для моего локального сервера.