我正在使用 jQuery 调用从一个页面(contentPage)中获取内容,并每 30 秒将其重新显示到我所在的当前页面(tablePage)。这工作正常。当contentPage上的项目数发生变化时,我想刷新tablePage以便它完全重建表,而不仅仅是更新表值本身。
有没有办法从contentPage发送刷新到tablePage?
注意:如果可能,我想避免在contentPage上使用某种计数变量作为tablePage上的决定因素。
我正在使用 jQuery 调用从一个页面(contentPage)中获取内容,并每 30 秒将其重新显示到我所在的当前页面(tablePage)。这工作正常。当contentPage上的项目数发生变化时,我想刷新tablePage以便它完全重建表,而不仅仅是更新表值本身。
有没有办法从contentPage发送刷新到tablePage?
注意:如果可能,我想避免在contentPage上使用某种计数变量作为tablePage上的决定因素。
因此,您可以采取的另一个方向是在 javascript 中创建表的模板,并在每次函数中重建。我认为以下代码将帮助您重新考虑当前方向,因此您不必刷新该页面,您只需刷新表格,您可以使用当前会话触发器来调用函数 buildTable 而不是 location.href = location。 href,只是一个猜测,因为您没有包含任何代码片段:(我在此 javascript 的某些点使用 jQuery)
function buildTable(postDataFromContentPage){
var trItems = [];
var itemHeaderTemplate = '<th>{DataItemTitle1}</th><th>{DataItemTitle2}</th>';
var itemBodyTemplate = '<tr><td>{DataItem1}</td><td>{DataItem2}</td></tr>';
itemHeaderTemplate = itemHeaderTemplate.replace('{DataItemTitle1}',data.DataItemTitle1).replace('{DataItemTitle2}',data.DataItemTitle2);
$('#tableHeader').html(itemHeaderTemplate);
$.each(data.RowItemsArray, function (index, element) {
//RowItemsArray is a 2 dimensional array
itemBodyTemplate = itemBodyTemplate.replace('{DataItem1}',element{0}).replace('{DataItem2}',element{1});
trItems.push(itemBodyTemplate );
});
$('#tableBody').html(items.join(''));
//now you can just call buildTable function anytime to rebuild table
}//end function
<!--HTML-->
<table>
<thead id="tableHeader"></thead>
<tbbody id="tableBody"></tbody>
</table>
只需包含来自 contentPage 的一些数据,例如 refresh=true 并检查 tablePage 上的变量,如果它为“true”,请执行以下 javascript:
window.location.href = '{MyUrl}' + '?nocache=' + Date.parse(new Date());
nocache 有助于确保根据浏览器进行刷新。