- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Тренды маркетинга в 2024 году: мобильные продажи, углубленная аналитика и ИИ
Экспертная оценка Адмитад
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
У меня проблема, с которой я никогда не сталкивался. На странице стоит
func() определена во внешнем файле. Все браузеры работают как надо, а вот любимый MSIE 6
вызывает эту функцию раньше, чем загрузится внешний файл javascript, и выдает ошибку "Требуется объект". Причем это происходит только при переходе на страницу, если её обновить - все работает нормально.
Как перехватить этот момент чтобы не было ошибки? Вариант засунуть func() в тело страницы отпадает, т.к. она использует Prototype, а он уж точно будет лежать во внешнем файле.
$(document).ready(function(){
$('teg').func({});
}
или не так понял ))
neolord,
я делаю так.
<script>
var pics = new Image();
pics.src='aaa.js'; (кешируем файл скрипта)
function aaa(){} (делаем заглушку)
</script>
<script src='aaa.js'></script> (теперь загружаем файло с этой функцией)
Дополнительно, а файле aaa.js а самом конце переопределяем какую-то глобальную переменную. Это и будет сигналом о загрузке.
onload не использую никогда, ибо есть ситуации когда это событие просто не наступает.
На счет IE и прочего. У IE - приоритет загрузки, у Opera и Safari - собственного кеша. FF - никогда не интересовал, посему - незнаю.
$(document).ready(function(){
$('teg').func({});
}
или не так понял ))
Не так =) Фишка в том что в IE6 и вот это не сработает, потому что он, сцуко, вообще не грузит яваскрипт при первом переходе на страницу - я это только что заметил, поставив дебаггер. Обновляешь - грузит.
neolord,
я делаю так.
<script>
var pics = new Image();
pics.src='aaa.js'; (кешируем файл скрипта)
function aaa(){} (делаем заглушку)
</script>
<script src='aaa.js'></script> (теперь загружаем файло с этой функцией)
Дополнительно, а файле aaa.js а самом конце переопределяем какую-то глобальную переменную. Это и будет сигналом о загрузке.
onload не использую никогда, ибо есть ситуации когда это событие просто не наступает.
На счет IE и прочего. У IE - приоритет загрузки, у Opera и Safari - собственного кеша. FF - никогда не интересовал, посему - незнаю.
Это что-то глубокое и непостижимое для меня. Зачем эта функция aaa нужна?
И фишка то как выяснилось не в Onload, а в том что он вообще не хочет грузить скрипт.
Возможно дело в том, что у меня весь js собирается скриптом в один файл и чистится, для уменьшения потока данных - стоит <script src='/js/'> Но это увы неизлечимо по многим причинам.
Зачем эта функция aaa нужна?
это имя функции, совпадающее с тем, которое будет загружено в файле. Пока файл не загружен, функия, пусть и нудевая, существует. А значит - не возникает криической ошибки.
T.R.O.N добавил 25.05.2009 в 17:40
в том что он вообще не хочет грузить скрипт.
для этого я и ставлю кеширование.
Вы не поверите, но не помогло.
Не помогли даже танцы с бубном вроде динамической подгрузки с гет-параметром.
"/js/?"+Math.floor(Math.random*10000)
Но - обновляешь, и все работает.
При этом принудительное обновление через Try/Catch, через conditional comments, через alert или document.write не решает проблемы. Я просто в шоке.
Меня жутко бесит этот IE.
neolord, а пробовали посмотреть снифером. Когда какие запросы и ответы проходят?
T.R.O.N добавил 25.05.2009 в 17:58
Меня жутко бесит этот IE.
OFF Фрузу сняли прямо с языка, тока по отношению к лисе.. Заимела она. Все нормауль везде работает, а ее колбасит
С фоксом у меня почему то никогда проблем нет.
Запросы получаются такие:
Вошел первый раз на страницу (сразу на ту где нужен скрипт) - все сработало и все запросы были.
перешел на другую - запрос ушел только на /js/ - картинки и стили видимо закешировались.
Вернулся на ту - опять запрос ушел только на /js/ но ничего не сработало. Код ответа 200, контент верный. Однако дебаггер опять уверяет что функция $ ему незнакома, как и все остальное.
Сейчас попробую засунуть в js принудительное кеширование
neolord,
Маленький вопрос, а не используете ли Вы случаем прототип или гквери? Если да - проверяйте кодировки в ответах сервера.
что функция $ ему незнаком
. Попробуйте нормально эту фунцию вызвать перед </body>.
использую прототип, да. я вроде писал выше.
Я эту функцию пытаюсь после загрузки страницы вызвать.
но перед body тоже не работает =)
Насильное кеширование тоже не помогло. Моя фантазия уже кончилась.
Моя фантазия уже кончилась.
вывод, выкинуть на... прототип (как и другую подобную гадость)