簡體   English   中英

重定向到Cordova應用程序中的另一個頁面后無法運行javascript

[英]Can't run javascript after redirecting to another page in cordova app

我有一個困擾我幾天的問題。 簡而言之,我有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()函數在索引頁面上傳遞一次,而用戶嘗試通過以下方式轉到signup.html: href和data-transition =“ slide-in”不會完全加載scripts.js來重新運行showTab()函數,此函數是scripts.js的第一行。解決此問題的一種方法是更改​​data-transition = “滑入”到data-ignore =“ push”,這實際上導致signup.html重新加載,但丟失了過渡。 我最終使用Ratchet框架和Cordova來構建應用程序。 我也嘗試在signup.html中添加onload =“ showTab()”

<div class="content bg-primary" onload="showTab()>

再次不會重新加載JS。

應該試圖用科爾多瓦頁面之間進行導航。

這是最佳實踐Cordova應用程序開發的第一項:

首先-您的Cordova應用程序應采用SPA(單頁應用程序)設計。 松散定義的SPA是從網頁的一個請求運行的客戶端應用程序。 用戶加載一組初始資源(HTML,CSS和JavaScript),並通過AJAX完成進一步的更新(顯示新視圖,加載數據)。 SPA通常用於更復雜的客戶端應用程序。 GMail就是一個很好的例子。 加載GMail之后,郵件視圖,編輯和組織工作都是通過更新DOM來完成的,而不是實際離開當前頁面來加載一個全新的頁面。

請特別注意:

即使您選擇不使用Cordova,在不使用單頁體系結構的情況下創建移動應用程序也會對性能產生嚴重影響。 這是因為在頁面之間導航將需要重新加載腳本,資產等。 即使這些資產被緩存,仍然會存在性能問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM