[英]Javascript - Reloading page breaks my conditional formatting
我有以下代码,它们每60秒刷新一次Web部件,并且效果很好。 我的问题是,在刷新代码之上,我还有一个脚本,该脚本将突出显示我的数据的某些部分,并且一旦刷新开始,它就会破坏我的脚本。 将会发生的是,我加载了页面,并且可以看到我的脚本在突出显示我的数据时完成了它的工作,一分钟后,突出显示消失了,只剩下数据了。 我删除了刷新代码,并确认此后脚本保持完整。
重新加载代码:
<script type="text/javascript">
function reload() {
$.ajax({
async: false,
cache:false,
url: "http://ensemble-mtl.ent.cginet/sites/SERVIPCManagement/imc/Shared%20Documents/Whiteboard/Whiteboard.aspx",
complete: function (xData, Status) {
var DVWPMarkup = $(xData.responseText).find("#reload_me").html();
$("#reload_me").html(DVWPMarkup);
}
});
}
$(document).ready(function(){
reload();
var auto_refresh = setInterval(function(){reload();}, 60000);
});
</script>
突出显示代码:
<script language="javascript" type="text/javascript">
$('.IM_last_modified').each(function () {
var dtSt = $(this).html().split(" ");
var dtAr = dtSt[0].split("/");
var when = new Date(dtAr[1] + "/" + dtAr[0] + "/" + dtAr[2] + " " + dtSt[1]);
console.log(when);
var now = Date.now();
if (now - when > 3600000) {
$(this).addClass('min60');
} else if (now - when > 1800000) {
$(this).addClass('min30');
} else if (now - when > 1000) {
$(this).addClass('min1');
}
});
</script>
在我看来,您的突出显示代码只运行一次。 您需要将突出显示代码放入函数中,并在每次有新数据要突出显示时调用它。
如果您再次加载相同的内容,请在ajax回调函数中调用“突出显示代码”。 我的假设是,突出显示部分将被替换为ajax内容。
.....
complete: function (xData, Status) {
var DVWPMarkup = $(xData.responseText).find("#reload_me").html();
$("#reload_me").html(DVWPMarkup);
hightlightcode(); //make sure to change the highlight code to a function
}
function highlightcode()
{
$('.IM_last_modified').each(function () {
var dtSt = $(this).html().split(" ");
var dtAr = dtSt[0].split("/");
var when = new Date(dtAr[1] + "/" + dtAr[0] + "/" + dtAr[2] + " " + dtSt[1]);
.....
}
这是最终为我工作的脚本,感谢大家的快速帮助。
<script type="text/javascript">
function reload() {
$.ajax({
async: false,
cache:false,
url: "http://ensemble-mtl.ent.cginet/sites/SERVIPCManagement/imc/Shared%20Documents/Whiteboard/Whiteboard.aspx",
complete: function (xData, Status) {
var DVWPMarkup = $(xData.responseText).find("#reload_me").html();
$("#reload_me").html(DVWPMarkup);
highlightcode_IM();
}
});
}
function highlightcode_IM()
{
$('.IM_last_modified').each(function () {
var dtSt = $(this).html().split(" ");
var dtAr = dtSt[0].split("/");
var when = new Date(dtAr[1] + "/" + dtAr[0] + "/" + dtAr[2] + " " + dtSt[1]);
console.log(when);
var now = Date.now();
if (now - when > 3600000) {
$(this).addClass('min60');
} else if (now - when > 1800000) {
$(this).addClass('min30');
} else if (now - when > 1000) {
$(this).addClass('min1');
}
});
}
$(document).ready(function(){
reload();
var auto_refresh = setInterval(function(){reload();}, 6000);
});
</script>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.