jQuery load()在chrome中不起作用


jQuery load() not working in chrome?

好吧,我对jQuery、ajax等一无所知,我有一个jQuery/ajax脚本,我已经修改了它来做我需要的事情,那就是在加载图像时,通过将"视图"增加1来更新mysql数据库。如果我在野外旅行,这会运行得很好,但由于某种未知的原因,它似乎在铬合金中不起作用,或者至少是间歇性的。我还没有尝试过其他浏览器。

这是jQuery:

$('.view-count').load(function(){
var ClientID=$(this).attr('data-ClientID');
$.ajax({url:"inc/view-count.php?ClientID="+ClientID,cache:false,success:function(result){
    return true;
}});
});

包含类和数据ClientID:的html.php

$output .= '<div class="col-xs-12 col-sm-6 col-md-4 col-lg-4"><a href="app.php?id=' . $id  . '"><img class="img-responsive center-block img-border view-count" data-ClientID="' . $id . '" src="images/efits/' . $efit . '" alt="' . $bname . '" /></a></div>';

最后是view-count.php:

$clientID = (int) $_GET['ClientID'];
try {
$querySql = 'SELECT * FROM clients WHERE id LIKE :clientid';
$countquery = $db->prepare($querySql);
$countParams = array(':clientid'=>$clientID);
$countquery->execute($countParams);
$result = $countquery->fetch(PDO::FETCH_ASSOC);
$views = $result['views'];
} catch (PDOException $e) {
echo 'failed to get client views';
}
try {
$countSql = 'UPDATE clients SET views=:newview WHERE id LIKE :id';
    $count = $db->prepare($countSql);
    $countParams = array(':newview' => $views+1,':id' => $clientID);
    $count->execute($countParams);
} catch (PDOException $e) {
echo "failed to increase view count";
}

为什么我会有铬的问题,而不是狩猎?这与缓存图像有关吗?或者可能有些代码被弃用了?正如我所说,我是jQuery/ajax的新手,所以我甚至不知道从哪里开始尝试解决这个问题!我很惊讶我一开始就成功了!

一如既往,我们非常感谢您的帮助!

感谢

Kaylee

好的。。。我在过去的几个小时里对此进行了一些研究,我找到了一个至少对我有效的解决方案

首先,我在本地主机上工作,据我所知,在本地主机工作时,load()在chrome中不起作用,由于"同源策略",请参阅此提要以了解更多详细信息jQuery.load()不在chrome 中起作用

其次,当我将文件上传到服务器时,我仍然遇到同样的问题,从一些研究中,我发现chrome正在缓存正在加载的图像,因此没有运行jquery脚本。如果您在src-url的末尾添加了一些独特的内容,它会强制chrome从服务器而不是缓存中重新加载图像,因为它被视为新图像。就我个人而言,我创建了一个php变量$time=date(his);知道这将是独一无二的,然后像一样将其添加到图像src中

src="image-file-path.jpg?unique=<?php echo $time; ?>"

现在,每次我发送请求时,它都不会使用缓存来加载图像,所以我的jquery被执行了(yaaay)!希望这能帮助有同样问题的人。