2009-03-30 3 views
1

Я хочу подсчитать количество посещений (или посетителей, а не запросов страниц или хитов), сделанных на весь мой сайт.Какой самый простой счетчик посещений, который можно было бы сделать?

Я хочу сохранить каждое посещение в базе данных, чтобы показать графику с этими данными в будущем.

Кроме того, я хочу, чтобы он был надежным, быстрым и не подлежащим опросу в базу данных для каждого запроса страницы. Итак, я думаю, что я должен поместить некоторый код в какую-то точку входа, но я не знаю, где, а не в событии Global.asax AppEndRequest. Я предполагаю, что нужно закодировать события SessionStart или SessionEnd.

Как я могу сделать это посещением счетчика?

ответ

0

Обратите внимание, что предложение Сайеда будет отслеживать количество посетителей, а Jhonny-х будет отслеживать просмотров страницы. Возможно, вам захочется решить, какой из них вам нужен.

Предполагая, что вы хотите видеть посетителей, я согласен с Syed, поймаю Session_Start в глобальном масштабе и увеличиваю число в базе данных.

Вы могли бы получить больше полезной информации, если вы храните дополнительную информацию в базе данных - например, таблицу, как это:

tblVisitor 
- SessionID nvarchar(32) 
- SessionStart datetime 

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

Однако вы попросили простейший возможный способ, и простой счетчик выполнит это точно.

0

Вам просто нужно обновить значение счетчика вашей базы данных. вы можете использовать session start и update counter valude в базе данных по 1 ..

-1

Я думаю, вы можете поместить глобальную переменную в Global.asax, увеличить ее на Application_OnEndRequest и на другой странице предоставить код для сохранения значения в базу данных, как административную задачу.

void Application_OnEndRequest(object sender, EventArgs e) { 
    int visits; 
    if (int.TryParse(Application["visits"], out visits)) { 
     visits++; 
    } else { 
     visits = 1; 
    } 
    Application["visits"] = visits; 
} 
+0

Это, безусловно, не поточно-и счетчик посещения не будет сохраняться между сбросами применения. – Juliet

+0

Я думаю, что он просит простоты, каждый может сохранить каждый запрос или посетить или попасть в базу данных, но он не хочет опросить базу данных по каждому запросу, ... для получения потокобезопасности вы можете вызвать Monitor.Lock или что-то вроде этого –

1

Вы можете просто разобрать существующие логи сервера, либо с помощью собственного программного обеспечения или с помощью существующего журнала разбора программного обеспечения. Я знаю, что Log Parser от Microsoft может конвертировать журналы в sql, если это необходимо. Анализатор может быть легко расширен, чтобы использовать простой СОМ-объекты для выполнения синтаксического анализа, если журнал в формате он не понимает ..

+0

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

+0

Наверное, просто нажмите отслеживание, хотя оно почти наверняка включает в себя IP-адреса. – Brian

5

Используйте Google Analytics или что-то подобное. Это самое простое решение.

+0

+1 Скалы Google Analytics. –

0

В общем, я согласен с Rashack в общем принципе, что лучше всего воспользоваться бесплатными услугами от третьих лиц, которые хорошо при анализе посетителей. Помимо Google Analytics, вы можете рассмотреть Quantcast.

Смежные вопросы