我有一个困扰我好几天的问题。 简而言之,我有index.html页面,该页面在应用启动时首先为用户显示一个登录页面。在其中加载我的文件scripts.js,其中包含所有页面的功能(包括signup.html),但是问题是有一个showTab()函数必须在用户想要创建帐户并重定向到时运行。 signup.html页面 我这样做是这样的:
<a class="text-info font-weight-bold h5 text-underline" href="signup.html" data-transition="slide-in"><U>Create
one now!</U></a>
因此您可以看到问题出在哪里,当应用程序实际加载scrips.js时已加载,应在signup.html上运行的showTab()函数在索引页面上一次传递,而当用户尝试进行注册时带有href和data-transition =“ slide-in”的.html,不会完全加载scripts.js以重新运行函数showTab(),该函数是scripts.js的第一行 解决此问题的一种方法是将data-transition =“ slide-in”更改为data-ignore =“ push”,这实际上导致signup.html重新加载,但丢失了过渡。 我最终使用Ratchet框架和Cordova来构建应用程序。 我还尝试在signup.html
中添加onload =“ showTab()”<div class="content bg-primary" onload="showTab()>
再次不会重新加载JS。
答案 0 :(得分:0)
您不应该不尝试使用Cordova在页面之间进行导航。
这是Best Practices Cordova app development中的第一项:
首先-您的Cordova应用程序应采用SPA (单页应用程序)设计。松散定义,SPA是 从一个网页请求运行的客户端应用程序。 用户加载一组初始资源(HTML,CSS和JavaScript) 并通过以下方式进行进一步的更新(显示新视图,加载数据) AJAX。 SPA通常用于更复杂的客户端 应用程序。 GMail就是一个很好的例子。加载GMail后, 邮件视图,编辑和组织都是通过更新DOM完成的 而不是实际离开当前页面以加载全新的页面 一个。
对此特别注意:
即使您选择不使用Cordova,也会创建一个移动应用程序 如果不使用单页架构,则会产生严重的性能 含义。这是因为在页面之间导航将需要 脚本,资产等要重新加载。即使这些资产是 缓存,仍然会有性能问题。