从其他页面刷新页面

时间:2013-08-13 21:20:36

标签: javascript

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

有没有办法将 contentPage 的刷新内容发送到 tablePage

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

2 个答案:

答案 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>