0

我正在使用 jQuery 调用从一个页面(contentPage)中获取内容,并每 30 秒将其重新显示到我所在的当前页面(tablePage)。这工作正常。当contentPage上的项目数发生变化时,我想刷新tablePage以便它完全重建表,而不仅仅是更新表值本身。

有没有办法从contentPage发送刷新到tablePage

注意:如果可能,我想避免在contentPage上使用某种计数变量作为tablePage上的决定因素。

4

2 回答 2

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>
于 2013-08-13T22:45:15.247 回答
0

只需包含来自 contentPage 的一些数据,例如 refresh=true 并检查 tablePage 上的变量,如果它为“true”,请执行以下 javascript:

window.location.href = '{MyUrl}' + '?nocache=' + Date.parse(new Date());

nocache 有助于确保根据浏览器进行刷新。

于 2013-08-13T21:32:53.257 回答