我正在使用jQuery调用从一个页面中获取内容( contentPage )并每隔30秒将其重新显示到当前页面( tablePage )我在。这很好用。当 contentPage 上的项目数量发生变化时,我想刷新 tablePage ,这样它将完全重建表格,而不仅仅是更新表格值。
有没有办法将 contentPage 的刷新内容发送到 tablePage ?
注意:如果可能的话,我想避免在 contentPage 上使用某种计数变量作为 tablePage 的决定因素。
答案 0 :(得分:0)
只需在contentPage中包含一些数据,如refresh = true,并在tablePage上检查该变量,如果是'true',请执行以下javascript:
window.location.href = '{MyUrl}' + '?nocache=' + Date.parse(new Date());
根据浏览器的不同,nocache有助于确保刷新。
答案 1 :(得分:0)
因此,您可以采取的另一个方向是在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>