Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 04.11.2011, 03:24
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Сообщение от Modder
Т.е. я ничего с этим сделать не смогу? Зависит только от источника?
Если это то, что я предположил, то да
Ответить с цитированием
  #12 (permalink)  
Старый 04.11.2011, 16:58
UDN UDN вне форума
Аспирант
Отправить личное сообщение для UDN Посмотреть профиль Найти все сообщения от UDN
 
Регистрация: 18.06.2009
Сообщений: 55

Каков вопрос, таков и ответ))
На проблему с gzip или IE, здесь и не пахнет, как и на проблему кодировкой.

Решение проблемы с отсутствующим кодом или ссылкой на проблемный код, только по символьной строке (выдаваемый за код), это уравнение с более чем 2 неизвестными.
Поэтому адекватного ответа вы не найдете!))

Если FF по вашим словам работает корректно, так откройте им скрипт и скопируйте, куда вам требуется.


Сообщение от Modder Посмотреть сообщение
А Вы читаете, что я пишу? js-файл подключаю с других сайтов! Как я его сохраню?
ну так если у вас есть ссылка на скрипт, введете ее в адресную строку рабочего браузера.

Последний раз редактировалось UDN, 04.11.2011 в 17:48.
Ответить с цитированием
  #13 (permalink)  
Старый 04.11.2011, 18:20
Аватар для Modder
Интересующийся
Отправить личное сообщение для Modder Посмотреть профиль Найти все сообщения от Modder
 
Регистрация: 05.10.2011
Сообщений: 16

UDN, понял. Если проблема снова появится, сохраню файл через ИЕ и покажу, с ссылкой на исходник. Пока все норм.

Сообщение от UDN Посмотреть сообщение
Если FF по вашим словам работает корректно, так откройте им скрипт и скопируйте, куда вам требуется.
Скрипты обновляются чуть ли не каждый день. Не буду же я их каждый день сохранять и заливать на свой сервер?
Ответить с цитированием
  #14 (permalink)  
Старый 04.11.2011, 19:31
UDN UDN вне форума
Аспирант
Отправить личное сообщение для UDN Посмотреть профиль Найти все сообщения от UDN
 
Регистрация: 18.06.2009
Сообщений: 55

Оставьте на своем.. стабильную версию, продолжайте пользоваться подключаемой с чужого сервера.
Установите в документе флаг, корректности скрипта (может сервер заглючил или используют для оптимизации свой алгоритм сжатия и т.д.)
и в ситуации возникновения проблем динамически замените скрипт на свой.
Это при желание, для корректной работы вашего кода(если подобная проблема зачастит).))

Последний раз редактировалось UDN, 04.11.2011 в 19:42.
Ответить с цитированием
  #15 (permalink)  
Старый 05.11.2011, 17:03
Аватар для Modder
Интересующийся
Отправить личное сообщение для Modder Посмотреть профиль Найти все сообщения от Modder
 
Регистрация: 05.10.2011
Сообщений: 16

Сообщение от UDN Посмотреть сообщение
Установите в документе флаг, корректности скрипта
Как это сделать?
Ответить с цитированием
  #16 (permalink)  
Старый 05.11.2011, 19:40
UDN UDN вне форума
Аспирант
Отправить личное сообщение для UDN Посмотреть профиль Найти все сообщения от UDN
 
Регистрация: 18.06.2009
Сообщений: 55

При загрузке скриптов, их объекты, функции, переменные и т.д.
Попадают в область видимости вашего объекта "window"

/* подгружаемая функция main()*/		 
// function main(){};	
typeof(main)           // "undefined"
window.main           // undefined
"main" in window      // false    
try {var a=main;} catch (e) {}  // если main не инициализирован возникнет исключение


Этого достаточно.

По поводу флага, в javascript это любая переменная.
Я применил это слово условно, а не буквально(мало известной возможности).

var flagBag=!window.main;       // true - если не рабочий код



/** Проверка на валидность
sVar:String - проверяемый элемент коллекции.*/
function isVar(sVar){return (sVar in window)}


/**Элементы рабочего скрипта*/
var A={};function testA(){};

/**Элементы не рабочего скрипта
var B={};function testB(){}*/

/**тест рабочего*/
isVar("A")     		// true		
isVar("testA")		// true		
/**тест не рабочего*/
isVar("B")    		// false
isVar("testB")		// false


Если скрипт не загрузится, то и функция не будет доступна, но это вы и без меня понимаете.

Последний раз редактировалось UDN, 05.11.2011 в 23:04.
Ответить с цитированием
  #17 (permalink)  
Старый 05.11.2011, 22:53
Аватар для Modder
Интересующийся
Отправить личное сообщение для Modder Посмотреть профиль Найти все сообщения от Modder
 
Регистрация: 05.10.2011
Сообщений: 16

Интересно. Спасибо. Возьму на заметку.
Ответить с цитированием
  #18 (permalink)  
Старый 06.11.2011, 04:20
Аватар для Modder
Интересующийся
Отправить личное сообщение для Modder Посмотреть профиль Найти все сообщения от Modder
 
Регистрация: 05.10.2011
Сообщений: 16

Вот оно, опять!

Выкладываю "неправильный" js файл, а также нормальный. Переименовал его в txt, чтобы на форум загрузить.
Как видно разница "веса" между ними почти в 3 раза. Так что "неправильный" файл скорее всего сжат.

Оригинал: http://vkontakte.ru/js/api/xdm.js?1

Но мне еще кажется, что проблема из-за "?1" на концах ссылок.
Поясняю. Пробовал разные варианты сохранения:

1. Если сохранить через ИЕ этот файл по ссылке http://vkontakte.ru/js/api/xdm.js, сохранится нормально.

2. Если сохранить через ИЕ этот файл по ссылке http://vkontakte.ru/js/api/xdm.js?, сохранится нормально.

3. Если сохранить через ИЕ этот файл по ссылке http://vkontakte.ru/js/api/xdm.js?1, сохранится неправильно.
Но! После этого, обновляю страницу, содержащую подключаемые скрипты, как именно этот файл теперь воспринимает правильно! Если сохранить способами 1, 2, такого не произойдет.

P.S. UDN, ваш способ не получится, т.к. там много подгружаемых файлов в связке.
Вложения:
Тип файла: txt xdm.txt (2.4 Кб, 2 просмотров)
Тип файла: txt xdm_norm.txt (6.7 Кб, 4 просмотров)
Ответить с цитированием
  #19 (permalink)  
Старый 06.11.2011, 05:55
UDN UDN вне форума
Аспирант
Отправить личное сообщение для UDN Посмотреть профиль Найти все сообщения от UDN
 
Регистрация: 18.06.2009
Сообщений: 55

2. Требования к файлам, специфицированным атрибутом SRC

Внешние файлы с кодом JavaScript не могут содержать никаких тэгов HTML: они обязаны содержать только операторы и определения функций JavaScript.

Внешние файлы JavaScript должны иметь расширение файла .js, и сервер обязан отображать расширение .js в MIME-тип application/x-~javascript, который сервер отсылает обратно в шапке/header HTTP. Для отображения расширения в MIME-тип добавьте строку type=application/x-javascript exts=js в файл mime.types в директории config сервера, а затем перезапустите сервер.

Если сервер не отображает .js в MIME-тип application/x-~javascript, Navigator неправильно загружает файл JavaScript, специфицированный атрибутом SRC.

ПРИМЕЧАНИЕ: Это требование не применяется, если вы используете локальные файлы.

Последний раз редактировалось UDN, 06.11.2011 в 06:12.
Ответить с цитированием
  #20 (permalink)  
Старый 06.11.2011, 07:21
UDN UDN вне форума
Аспирант
Отправить личное сообщение для UDN Посмотреть профиль Найти все сообщения от UDN
 
Регистрация: 18.06.2009
Сообщений: 55

Прости но как не пытался вызвать эту ошибку, один черт работает((
<html>
<head>
<script src="http://vkontakte.ru/js/api/xdm.js"></script>
</head>
<body>
<script language="javascript" type="text/javascript">
function isVar(sVar){return sVar in window};

  alert(isVar("fastXDM"));      // true - скрипт рабочий
</script>
</body>


Как ты ее ловишь((
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Внешний JS с другого сайта -- это плохо? Andrej_N Общие вопросы Javascript 2 15.10.2010 14:18
Как правильно прописать свой код в .js Всеми_Любимый Элементы интерфейса 6 23.02.2010 21:34