как считать загрузки файла с помощью jquery - PullRequest
2 голосов
/ 09 марта 2011

Кто-нибудь знает какой-нибудь плагин jquery для подсчета того, сколько раз файл (pdf, в моем случае) загружается с вашего сервера ??

Ответы [ 6 ]

3 голосов
/ 09 марта 2011

вы можете просто использовать JavaScript API Google Analytics с событием onclick

Тогда вы можете иметь красивые графики для ваших загрузок.см. пример для примера: http://think2loud.com/use-jquery-with-google-analytics-to-track-clicks-on-outgoing-links-from-your-site/

1 голос
/ 09 марта 2011

Вы можете создать скрипт download.php, который будет подсчитывать ваши ссылки для скачивания.

<?php

// connect to database
if (isset($_GET['file'])) {
    $file = mysql_real_escape_string($_GET['file']);
    $query = "insert into downloads VALUES('$file', 1) on duplicate key " . 
      "update count = count + 1;, count+1)";
    mysql_query($query);
}
?>

Таблица загрузок:

create table downloads(file VARCHAR(255) primary key, count integer default 1)

и в jQuery

$('a.download').click(function() {
   //empty function don't care what I get.
   $.get('download.php', {file: $(this).attr('href')}, function() {});
});

он вызывает скрипт download.php с атрибутом href для каждой ссылки, имеющей класс загрузки

UPDATE Я забыл добавить return false, потому что в коде выше он вызывает ajax, а затем прерывает его.

$('a.download').click(function() {
   var link = $(this).attr('href');
   $.get('download.php', {file: link}, function() {
       // change url to link when ajax is finished
       window.location = link;
   });
   // prevent following the link
   return false;
});

Вы также можете добавить код, который предотвращает многократные клики, потому что будет задержка между завершением вызова ajax и изменением URL на ссылку элемента (пользователь может щелкнуть несколько раз, потому что он не будет следовать за ссылкой), и вы можете добавитьCTRL + щелчок, потому что он открывает ссылку в другом окне (в этом случае вы можете вернуть true).

0 голосов
/ 17 марта 2011

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

Я использую Wordpress для запуска своего сайта.

Спасибо

0 голосов
/ 09 марта 2011

jQuery сам по себе не сможет этого сделать.

Вам придется отслеживать сервер каждый раз, когда запрашивается файл.

0 голосов
/ 09 марта 2011

Это невозможно. Код jQuery выполняется в браузере пользователя, а не на сервере. Для подсчета загрузок вам понадобится код на стороне сервера.

0 голосов
/ 09 марта 2011

Вы можете использовать jQuery, чтобы определить, сколько раз один пользователь нажимает на данную ссылку на заданной полностью отрендеренной странице, и использовать это значение для обновления таблицы базы данных о кликах для скачивания через AJAX, но у jQuery нет Для непосредственного ознакомления с данными на стороне сервера, относящимися к общему количеству загрузок, вам потребуется обновить базу данных этими данными и отобразить ее оттуда. Вы можете использовать jQuery, чтобы посмотреть, не изменится ли это значение (возможно, по таймеру), и соответственно обновить свою страницу, но для этого все еще требуется вызов AJAX для поиска в базе данных.

jQuery - это библиотека для Javascript, которая является клиентским языком и действует на странице после ее загрузки и запуска на клиентской машине, и поэтому не является местом для серверной логики и поиска, за исключением случаев, когда AJAX гарантирован и необходим.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...