Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery plugins 如何使用jquery计算文件下载量_Jquery Plugins - Fatal编程技术网

Jquery plugins 如何使用jquery计算文件下载量

Jquery plugins 如何使用jquery计算文件下载量,jquery-plugins,Jquery Plugins,任何人都知道一些jquery插件可以计算文件(在我的例子中是pdf)从您的服务器下载的次数???您可以使用jquery确定单个用户在给定完全呈现的页面上单击给定链接的次数,并使用该值通过AJAX更新数据库中的下载点击次数表,但是jQuery并不能直接洞察服务器端数据与下载总数的关系,您必须用这些数据更新数据库并从那里显示数据。您可以使用jQuery观察并查看该值是否发生变化(可能在计时器上),并相应地更新页面,但这仍然需要对数据库查找进行AJAX调用 jQuery是一个Javascript库,它

任何人都知道一些jquery插件可以计算文件(在我的例子中是pdf)从您的服务器下载的次数???

您可以使用jquery确定单个用户在给定完全呈现的页面上单击给定链接的次数,并使用该值通过AJAX更新数据库中的下载点击次数表,但是jQuery并不能直接洞察服务器端数据与下载总数的关系,您必须用这些数据更新数据库并从那里显示数据。您可以使用jQuery观察并查看该值是否发生变化(可能在计时器上),并相应地更新页面,但这仍然需要对数据库查找进行AJAX调用


jQuery是一个Javascript库,它是一种客户端语言,一旦下载并在客户端机器上运行,它就会在页面上运行,因此,除了在保证和需要AJAX的情况下,jQuery不是服务器端逻辑和查找的地方。

这是不可能的。jQuery代码在用户的浏览器中运行,而不是在服务器上运行。要计算下载量,您需要服务器端代码。

jQuery本身无法做到这一点


每次请求文件时,您都必须跟踪服务器。

您只需使用带有onclick事件的google analytics javascript API即可


然后你就可以下载漂亮的图表了。请参见此处的示例:

您可以创建script 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);
}
?>
在jQuery中

$('a.download').click(function() {
   //empty function don't care what I get.
   $.get('download.php', {file: $(this).attr('href')}, function() {});
});
它在每个具有下载类的链接上调用download.php脚本,并带有href属性

更新我忘了添加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+click,因为它会在其他窗口中打开链接(在这种情况下,您可以返回true).

是否需要修改上述脚本,以便根据用户加入网站的日期,每个用户在设定的时间段内只能下载1次,即用户从加入网站之日起每年只能下载一次文件

我正在使用Wordpress运行我的网站


谢谢

你能再详细说明一下吗。jQuery代码如何链接到下载文件链接?您可以通过文件查询参数通过ajax将链接的href发送到download.php脚本。若用户单击a.download链接并执行download.php脚本,我将忘记添加returnfalse并更改位置作为响应。
$('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;
});