如何测试打开javascript的用户百分比

时间:2011-04-21 14:33:02

标签: php javascript

如果启用了javascript,请尝试测试用户数量。我认为这个技巧会起作用,但忘了php执行任何一种方式。

<script>
<?php
    $sql_insert = "INSERT IGNORE into `test_javascript` (`javascript`,`dateTime`) VALUES ('1',now())";          
    mysql_query($sql_insert,$link) or die("Insertion Failed:" . mysql_error());
?>
</script>
<noscript>
<?php
    $sql_insert = "INSERT IGNORE into `test_javascript` (`javascript`,`dateTime`) VALUES ('0',now())";          
    mysql_query($sql_insert,$link) or die("Insertion Failed:" . mysql_error()); 
?>
</noscript>

有关如何修复此脚本或其他方法以查找启用了javascript的用户百分比的任何想法。

我们60%的用户使用IE,其中一些(我们知道)没有启用javascript,所以我想更好地了解没有javascript的用户数量。

10 个答案:

答案 0 :(得分:6)

您可以使用AJAX,获取javascript来调用单独的页面,该页面将使用PHP处理您的数据库查询

答案 1 :(得分:3)

加载页面时,可以在PHP中将条目插入数据库。这将为您提供页面请求的总数。

在Javascript中,您可以使用AJAX发起另一个请求。这将发布到PHP脚本,但需要Javascript才能正常工作。此查询将告诉您具有Javascript支持的浏览器的请求数。

如果您记录时间戳和IP地址(或任何其他状态变量),您应该能够关联两个插入之间的条目。

或者,另一种方法是让AJAX调用更新PHP查询插入的行。在我看来,这将是一种更清洁的方法。

答案 2 :(得分:3)

你可以像其他人建议的那样做ajax,或者你可以只记录每个人插入添加类似

的脚本
document.write('<img src="/javascript-enabled-tracking" width="0" height="0"/>');

指向你的PHP脚本,它会计算启用javascript的人员。

此外,您可能可以将图像放入noscript部分,在这种情况下,您不需要javascript,它将跟踪非js启用的灵魂。

答案 3 :(得分:2)

记录所有人以计算访问您网站的人数(无脚本或noscript标签),然后使用AJAX调用记录启用javascript的人员。

答案 4 :(得分:1)

两个PHP块都将在客户端执行服务器端代码时运行,因此script / noscript无关紧要。

您可以做的是在首页加载时通过PHP编写cookie,然后使用JS设置另一个cookie。在下一页加载时,您可以检查是否已设置两个cookie,如果只设置了PHP,那么您可以假设JS已被禁用。当然,如果用户禁用了cookie,那么你就不会知道了!

或者,您可以使用script / noscript加载跟踪像素图片。

<script>
  trackingPixel = new Image();
  trackingPixel.src = '/tracking.php?yesjs';
</script>
<noscript>
  <img src="/tracking.php?nojs" alt="">
</noscript>

然后让您的tracking.php文件根据需要记录信息,并禁用未来请求中的检查。确保在脚本末尾返回适当的内容(MIME类型,内容等)。

答案 5 :(得分:0)

您可以使用js和AJAX来调用包含插入代码的PHP页面。因此,只有在此人启用了javascript的情况下才会进行通话。

您可能希望确保在AJAX POST中将某些内容传递到此PHP页面,以便任何可能碰巧登陆此页面的人(如机器人或其他东西)都不会触发向数据库提交

答案 6 :(得分:0)

为访问服务器的每个用户生成唯一ID(例如,SessionID)。 注入(如果没有全部计算)javascript使用此ID向您的计数器发送ajax请求。

答案 7 :(得分:0)

最简单的解决方案可能是将此注入您的网页:

<script>document.cookie = "javascript=1";</script>

然后检查$_COOKIE["javascript"]。但当然这仅适用于第二页/请求。 (更精细的探测方法因此使用重定向到检测页面,如果还没有cookie存在的话。)

答案 8 :(得分:0)

以下是策略大纲:

  1. 首先,您需要一种适当可靠的方式来了解“用户”何时查看您的网页
  2. 其次,您需要将该ID放入cookie中,这样一旦有了cookie,您就可以对其进行测试;将其存储在db表中
  3. 现在,在页面加载时,如果cookie可用,请尝试使用JS设置另一个cookie;用用户ID加盐它
  4. 在页面请求(或可能使用AJAX)上,测试是否存在id和测试cookie;将其存储在一个表中,其中用户ID和测试cookie字段都是唯一的
  5. 执行查询以查看有多少个ID没有相应的测试Cookie值

答案 9 :(得分:0)

您应该能够为页面请求分配ID,将其作为HTML请求记录到数据库中,然后添加类似

的内容

<script type="text/javascript" src="/tracker.php?id=<?php echo $ID; ?>"></script>

然后将JS请求记录到数据库。禁用JavaScript的用户不会请求该文件。