Делаем статистику динамической
Делаем статистику динамической
Итак, мы узнали, как подготовить внешний JavaScript-файл к динамической загрузке. Осталось понять, как теперь это использовать.
Основное преимущество (или недостаток?) Omniture заключается в том, что JavaScript-файл (обычно s_code.js) располагается на нашем сервере. Поэтому ничего не мешает нам его там и заменить. После этого обеспечить динамическую загрузку и вызов счетчика уже не составит труда.
В той ситуации, когда скрипт совсем внешний (Google Analytics), у нас по большому счету только 2 выхода:
Перенести сам скрипт на наш сервер, добавить в него необходимые инициализационные переменные и вызов (помимо самого объявления) функции статистики (для Google Analytics это urchinTracker()). В качестве плюсов можно отметить то, что в общем случае скрипт будет загружаться с нашего сервера побыстрее, чем будет устанавливаться новое соединение с www.google-analytics.com и проверяться, что файл не изменился. В качестве минусов — необходимость отслеживать (возможные) изменения скрипта и необходимость отдавать JavaScript-файл с собственного сервера со всеми вытекающими из этого последствиями.
Проверять через определенные промежутки времени, загрузилась ли библиотека. Пишется очень простой код, который через каждый 10 мс проверяет, доступна ли из библиотеки необходимая функция. Если да, то она вызывается. В противном случае проверка запускается снова через 10 мс. Плюсы: можно использовать тот же самый скрипт, что и раньше. Минусы: дополнительная (небольшая) нагрузка на клиентский браузер при загрузке. В качестве примера можно рассмотреть следующий код для Goole Analytics:
var _counter_timer = setInterval(function() {
if (urchinTracker) {
urchinTracker();
clearInterval(_counter_timer);
}
}, 10);
Видим, что в первом случае у нас загрузка сильно ускоряется (особенно для постоянных посетителей), во втором случае — получается дешево и сердито, зато более надежно (в смысле отсутствия дополнительного вмешательства в исходный код).
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Понятие статической и динамической веб-страницы
Понятие статической и динамической веб-страницы Ранее мы уже кратко говорили о том, что представляют собой статические и динамические веб-страницы. В данном же разделе мы рассмотрим этот вопрос более детально.Название статической страницы говорит само за себя: на такой
Функции динамической загрузки
Функции динамической загрузки dlЗагрузка библиотеки расширения PHP во время выполнения.Синтаксис:int dl(string library);dl("extensions/php_db.dll");Загружает PHP расширение определенное в library.get_loaded_extensionsОпределения перечня загруженных модулей.Синтаксис:array get_loaded_extensions(void);Возвращает массив,
Приложение 4. Как узнать статистику конкурентов
Приложение 4. Как узнать статистику конкурентов Иногда полезно изучить статистику конкурентов или просто интересных сообществ. Если статистика конкурентов не закрыта (в этом случае она доступна администраторам), ее можно подсмотреть следующим образом.Введите в
2. Работа с динамической памятью. Нетипизированные указатели
2. Работа с динамической памятью. Нетипизированные указатели Процедуры и функции работы с динамической памятью 1. Процедура New(var p: Pointer). Выделяет место в динамической области памяти для размещения динамической переменной рЛ, и ее адрес присваивает указателю
1.4. Сборка динамической библиотеки из командной строки
1.4. Сборка динамической библиотеки из командной строки ПроблемаВы хотите использовать свои инструменты командной строки для сборки динамической библиотеки из набора исходных файлов С++, таких как перечисленные в примере 1.2.РешениеВыполните следующие шаги.1. Используйте
1.9. Сборка динамической библиотеки с помощью Boost.Build
1.9. Сборка динамической библиотеки с помощью Boost.Build ПроблемаВы хотите использовать Boost.Build для сборки динамической библиотеки из набора исходных файлов С++, таких как перечисленные в примере 1.2.РешениеВ директории, где вы хотите создать динамическую библиотеку и, если
1.12. Сборка динамической библиотеки с помощью IDE
1.12. Сборка динамической библиотеки с помощью IDE ПроблемаВы хотите использовать IDE для сборки динамической библиотеки из набора исходных файлов С++, таких как перечисленные в примере 1.2.РешениеОсновная процедура выглядит следующим образом.1. Создайте новый проект и
11.14. Реализация динамической матрицы
11.14. Реализация динамической матрицы ПроблемаТребуется реализовать числовые матрицы, размерности которых (количество строк и столбцов) неизвестны на этапе компиляции.РешениеВ примере 11.28 показана универсальная и эффективная реализация класса динамической матрицы,
А.2. Поиск ошибок в динамической памяти
А.2. Поиск ошибок в динамической памяти При написании программы зачастую неизвестно, сколько памяти потребуется ей во время выполнения. Например, строка, читаемая из файла, может иметь любую длину. Работа с динамической памятью осуществляется посредством функций malloc(),
А.2.1. Программа для тестирования динамической памяти
А.2.1. Программа для тестирования динамической памяти Программа malloc-use, приведенная в листинге А.2, позволяет тестировать операции выделения, освобождения и обращения к памяти. Единственный аргумент командной строки задает максимальное число выделяемых буферов. Например,
Режим с динамической компоновкой
Режим с динамической компоновкой Особенности режима с динамической компоновкойКак было отмечено выше, с помощью кнопки быстрого доступа Режим" и связанной с ней клавиши F4 можно осуществлять переключение между двумя режимами окна задачника: традиционного режима с
Аргументы в пользу динамической типизации
Аргументы в пользу динамической типизации Несмотря на все это, динамическая типизация не теряет своих приверженцев, в частности, среди Smalltalk-программистов. Их аргументы основаны прежде всего на реализме, речь о котором шла выше. Они уверены, что статическая типизация