Javascript 如果内容不同,则使用ajax更新页面
我正在尝试创建一个投票应用程序,我需要一些帮助 我遇到的问题是,我每3秒钟发送一次请求,表单中选择的所有选项在每次重新加载时都会重置。(因此,用户必须做出选择并在3秒内提交。)Javascript 如果内容不同,则使用ajax更新页面,javascript,php,jquery,html,ajax,Javascript,Php,Jquery,Html,Ajax,我正在尝试创建一个投票应用程序,我需要一些帮助 我遇到的问题是,我每3秒钟发送一次请求,表单中选择的所有选项在每次重新加载时都会重置。(因此,用户必须做出选择并在3秒内提交。) $(文档).ready(函数(){ $.ajaxSetup({cache:false}); setInterval(函数(){ $('respnseDiv').load('response.php'); }, 3000); }); 这就是我目前用来填充div的内容 我希望jquery检查每个响应的内容,看看是否与上一
$(文档).ready(函数(){
$.ajaxSetup({cache:false});
setInterval(函数(){
$('respnseDiv').load('response.php');
}, 3000);
});
这就是我目前用来填充div的内容
我希望jquery检查每个响应的内容,看看是否与上一个相同,如果相同,不要更新div,如果内容不同(即要投票的新问题),将其加载到div中
我不太擅长js/jquery,但渴望学习
问候
Johan在mysql表中使用时间戳,然后创建另一个php文件,用于根据您的条件检查最新的时间戳。检查此时间戳并将最新数据库更新的时间戳保存在javascript变量中
var latest_timestamp = 0;
setInterval(function () {
$.ajax({
url: "check_timestamp.php",
type: "GET",
success: function(latest_db_timestamp){
if(latest_timestamp < latest_db_timestamp)
{
$('#respnseDiv').load('response.php');
}
}
});
}, 3000);
var-latest\u timestamp=0;
setInterval(函数(){
$.ajax({
url:“check_timestamp.php”,
键入:“获取”,
成功:函数(最新的\u db\u时间戳){
if(最新\u时间戳<最新\u db\u时间戳)
{
$('respnseDiv').load('response.php');
}
}
});
}, 3000);
使用全局变量将每个响应与上一个响应进行比较,并仅在存在差异时修改html
给你:
<script type="text/javascript">
var last_response = null;
$(document).ready(function() {
$.ajaxSetup({ cache: false });
setInterval(function() {
var res = $.get('response.php');
if (res != last_response) {
$('#respnseDiv').html(res);
last_response = res;
}
}, 3000);
});
</script>
var last_response=null;
$(文档).ready(函数(){
$.ajaxSetup({cache:false});
setInterval(函数(){
var res=$.get('response.php');
如果(res!=最后一次响应){
$('respnseDiv').html(res);
最后的_响应=res;
}
}, 3000);
});
希望能有所帮助。您可以在div中添加一个名为“id”的隐藏输入(即,包含问题的id)或其他内容,然后创建另一个(隐藏)div,ajax将响应加载到该div。只需比较“id”输入的值,如果它们不匹配,则可以将html实际加载到原始div中。如下所示:
$(document).ready(function () {
$.ajaxSetup({ cache: false });
setInterval(function () {
$('#hiddenDiv').load('response.php');
if ($("#hiddenDiv input.id").val() != $('#respnseDiv input.id').val())
{
$('#respnseDiv').html($('#hiddenDiv').html());
}
}, 3000);
});
请尝试向您的问题中添加一些代码以使其更清晰。我正在使用的jquery中添加了一些代码,我现在不在计算机上,因此我无法访问我的php代码。如果我理解得很好,您希望缓存用户对问题的响应。只需将最后一个答案存储在一个变量中,并在用户尝试给出新响应时进行交叉检查。我可能有点不清楚,我希望jquery检查每个响应的内容,看看是否与最后一个相同,如果相同,则不更新div,如果内容不同(即要投票的新问题),将其加载到div中。@mysteryos这似乎是我正在寻找的,我会尽快尝试
$(document).ready(function () {
$.ajaxSetup({ cache: false });
setInterval(function () {
$('#hiddenDiv').load('response.php');
if ($("#hiddenDiv input.id").val() != $('#respnseDiv input.id').val())
{
$('#respnseDiv').html($('#hiddenDiv').html());
}
}, 3000);
});