SharePoint Web 部件自动刷新 javascript 事件?

SharePoint web part automatic refresh javascript event?

背景:我正在使用 JSLink 修改 SharePoint 列表 Web 部件。我还添加了 jQuery 和 jQuery-UI 以使列表项显示为 jQuery 手风琴。它运行良好,除了我还需要在 Web 部件上实现 ajax 自动刷新以每 60 秒刷新一次内容。

问题:当 Web 部件刷新时,jquery 代码还原 - 项目不再以手风琴模式显示。我可以打开浏览器控制台并手动输入 jquery 代码,例如 $(".selector").accordion();,它工作正常。这让我觉得我需要找到一种方法在每个 Web 部件自动刷新完成后 调用 jquery 代码

问题:所以,是否有 javascript 事件或方法来查明何时在我的 Web 部件上触发自动刷新,以便我可以再次调用我的 jquery手风琴之后?还有什么我可能会遗漏的吗?

感谢您的宝贵时间!

我相信您可以通过覆盖 Sys.WebForms.PageRequestManager 对象当前实例的 _onFormSubmit 方法,将您自己的代码或函数调用插入到回调链中。

Sys.WebForms.PageRequestManager.getInstance()._onFormSubmit = function(i){

    Sys.WebForms.PageRequestManager.prototype._onFormSubmit.call(this,i);

    alert("Refreshing the data..."); // -- your code or function call here

};

当我在 F12 控制台中 运行 在具有 25 秒刷新的列表视图的页面上执行上述代码时,我开始每 25 秒看到 "Refreshing the data..." 弹出窗口,但我还没有测试过比这更复杂的东西。

答案是使用此代码:

Sys.WebForms.PageRequestManager.getInstance().add_endRequest(MyFunction); 

function MyFunction() { 
    //do something here; 
}

感谢@Thriggle

参考资料: https://msdn.microsoft.com/en-us/library/bb311028.aspx https://www.daniweb.com/programming/web-development/threads/247263/ajax-postback-after-endrequest