Javascript 真正刷新/重新加载jQuery移动页面div
我目前正在处理一个包含多个jQM页面div(单页面方法)的文件。 我在这些页面的页眉中有一个刷新按钮,我试图根据“getActivePage”刷新各个页面div。这种交互性的原因是存在一个正在运行的项目列表,用户需要刷新该列表才能看到新内容进入listview 我已经进行了各种视觉刷新来改变下面的函数,但是没有一个能够完全刷新DOM或所需的pagecontainer或jQM页面div的内容。使用下面的代码,我能够看到视觉转换,并得到所需/相同的我尝试刷新的jQM页面div。问题是,内容似乎并没有真正被重新加载。(我在测试环境中有一种方法可以更改列表视图以测试刷新,但我看不到这些更改生效)我想知道我是否没有正确地传递“id_urlNav”,或者是否可以使用.pagecontainer(“更改”…) 当一切都丢失时,我最后插入了window.location.reload();,但对于页面容器操作来说,这似乎是一种糟糕的形式。如果有人知道为什么这不起作用,请告诉我。提前感谢您的审阅Javascript 真正刷新/重新加载jQuery移动页面div,javascript,jquery,jquery-mobile,mobile,Javascript,Jquery,Jquery Mobile,Mobile,我目前正在处理一个包含多个jQM页面div(单页面方法)的文件。 我在这些页面的页眉中有一个刷新按钮,我试图根据“getActivePage”刷新各个页面div。这种交互性的原因是存在一个正在运行的项目列表,用户需要刷新该列表才能看到新内容进入listview 我已经进行了各种视觉刷新来改变下面的函数,但是没有一个能够完全刷新DOM或所需的pagecontainer或jQM页面div的内容。使用下面的代码,我能够看到视觉转换,并得到所需/相同的我尝试刷新的jQM页面div。问题是,内容似乎并没有
// script to reload/refresh jQM pages
// scoped to internal page hashes vs. overall window
// "change" is used vs. "load" for internal reloads vs. AJAX content
function refreshPages() {
// the camel casing on the first part of the pageContainer object below
// is important
var id_url = $.mobile.pageContainer.pagecontainer("getActivePage")[0].id;
var id_urlNav = "#" + id_url;
console.log("id_urlNav" + " =" + " " + id_urlNav );
// window.location.reload();
// keeping the below in case 1.5 finally arives with proven solution
$.mobile.pageContainer.pagecontainer( "change", id_urlNav,
{
allowSamePageTransition : true,
showLoadMsg : true,
// reloadPage reloads entire jQM set of pages, forgetting the getActivePage
// reloadPage is deprecated
// reload "reloads" the getActivePage, but doesn't show new content
reload : true,
transition : 'fade',
changeHash : 'true'
}
);
}
// /refresh code
我在jQuery论坛上读到一些关于reload:vs.现已弃用的reloadPage:的错误,但我不知道这是否是故障的原因。您的代码显示页面刷新,但不显示新数据的来源……而不是刷新整个页面,为什么不进行ajax调用并从ajax结果中重新填充列表?
reloadPage
已被弃用,但它仍然有效。reload
中有一个bug尚未修复,谢谢大家的建议。是的,听起来我需要弄清楚如何通过AJAX注入这些内容,而不是在DOM中加载所有内容。我假设上面使用“change”的函数将自动允许这些pagecontainer显示新更新的内容?这就是为什么它不一定是上述函数中的“真正”刷新吗?我想这是jQM刷新整个容器的方法,AJAX正在做其余的事情。抱歉,如果这是对这个问题的愚蠢补充,那只是在研究jQM 1.4.3文档时没有一个是显而易见的。请注意,reload
或reloadPage
仅与URL一起工作,而不与#页面片段一起工作。正如@ezanker所说,您可以通过Ajax加载内容,而不是重新加载整个文档。再次感谢大家的反馈。我们没有内部的基础设施来注入来自某个平台的内容,所以我选择了location.reload(),并对loader小部件进行了调用,该小部件可以旋转,并在移动设备上提供更好的反馈,而不是依赖mobile Safari的微妙提示。查看这些示例=>