Отслеживание использования сайта с помощью Colfusion/JavaScript/Other
Наша команда разработчиков веб-сайтов управляет многими веб-сайтами (каждый из которых имеет свой собственный URL-адрес) в нашей сети INTRAnet. Мы хотели бы реализовать что-то (фрагмент кода), чтобы было легко добавить страницу Application.cfm/OnRequestEnd.cfm, которая вставляла бы запись в базу данных, отслеживающую такие вещи, как page, url, querystring, userid и т. Д. - основные вещи. Вставка записи не имеет большого значения. То, что я хотел бы знать, это с точки зрения производительности, что бы вы все порекомендовали, чтобы у нас не было узкого места в виде вставок в очереди, когда сотрудники посещают различные сайты. Мы не можем использовать jQuery, так как не все сайты будут иметь одинаковую версию jQuery, поэтому мы действительно ограничены использованием Coldfusion - я думаю.
В идеале мы хотели бы иметь возможность создать один основной файл отслеживания на нашем главном сервере и ссылаться на этот файл со всех других наших сайтов. Затем, если / когда нам нужно сделать обновление, мы можем внести глобальное изменение - вроде как в Google Analytics, но не так много деталей.
На всех сайтах, которые мы поддерживаем, у нас есть логотип нашего отдела на этих страницах. Я думал о том, как встроить процесс отслеживания в загрузку изображения, так же, как они делают с электронными письмами.
Любые мысли по этому поводу будут оценены, если у вас есть идея получше - я весь слух.
ОБНОВЛЕНО
Что касается обработки изображений, я не смог найти исходную ссылку на учебник от easycfm.com, но я нашел то, что похоже на идентичный код здесь: http://www.experts-exchange.com/Software/Server_Software/Web_Servers/ColdFusion/A_2386-Track-your-Emails-using-coldfusion.html
2 ответа
Ответ Адама Кэмерона, вероятно, таков, как и вам. Кроме того, я бы предложил вставить эти записи в таблицу без дополнительных индексов. Это заставит вставки быть очень быстрыми. Затем вы можете использовать запланированное задание базы данных, чтобы переместить эти данные в удобную нормализованную схему, которая быстро анализируется.
Я бы не стал списывать со счетов JavaScript только потому, что на каждом сайте будет своя версия JQuery. Люди до сих пор имели возможность делать вещи до появления JQuery, это просто библиотека JavaScript. Это очень простой JavaScript, чтобы динамически включать файл сценария, который указывает на ваш файл отслеживания с соответствующими параметрами.
<script type="text/javascript">
var script = document.createElement("script");
var body = document.getElementsByTagName("body")[0];
script.setAttribute("src", "http://www.yourdomain.com/trackingfile.cfm?" + yourparams);
body.appendChild(script);
</script>
Как видите, нет необходимости в JQuery.
Я бы сказал, что вы не должны пытаться преждевременно оптимизировать это, пока у вас нет причин для этого. Если вы обнаружите, что у вас есть проблемы в будущем, вы можете решить их тогда.
Создайте CFC для ведения журнала и реализуйте метод, который получает метрики, которые вы хотите зарегистрировать, а затем упаковывает их в запись для вставки в БД и использует <cfquery>
записать их в таблицу БД. Вызовите функцию из OnRequestEnd.cfm.
Я специально предлагаю включить это в CFC ведения журнала, потому что, если вам нужно изменить реализацию того, как вы ведете журнал, вы можете просто изменить внутреннюю работу метода ведения журнала, вместо того, чтобы связываться со всеми вашими сайтами.