2

给定一个单 html多页应用程序,我计划在我的每个页面中 JS 注入可能很重的长 html 代码和动画。HTML代码如:

<div data-role="page" id="page11">
  ...
</div>
<div data-role="page" id="page12">
 <h2 id="anchor12">Title: Page 12</h2>
 <script>myScript12() // inject complex content to #anchor12</script>
</div>

1. 我什么时候myScript12()被解雇?(当我打开 .html 文件或单击并打开 #page12 时?

2.当我离开#page12到另一个页面时,JS生成的内容会发生什么?


编辑:我不想在 .html 加载时加载所有 20 个重页。


解决方案: +1由 Gajotres (JQM: document ready vs page events) 的详细解释,下面是我目前的解决方案。仅在显示给定的 data-role="page" 时运行 js...

使用以下 JQM HTML/JS:

<div data-role="page" id="page12">
 <h2 id="anchor12">Title: Page 12</h2>
 <script>
$('#page12').on('pageinit') { //only run when page is displayed
     myScript12() // inject complex content to #anchor12
});</script>
</div>
4

1 回答 1

2
  1. 该脚本将在页面加载到DOM. 这就是页面事件存在的原因。基本上,如果您想为代码执行计时,请在页面事件中进行。如果您想了解有关页面事件的更多信息,请阅读我的其他答案:jQuery Mobile: document ready vs page events

  2. 当您离开页面时,该内容仍然加载到DOM. 如果你想阻止大的DOM内容,你可以使用pagehide事件来清理以前的页面内容。还有一个属性可以放在 data-role="page" div 中以防止DOM兑现。属性名称是data-dom-cache="true",您可以在此处找到更多相关信息。

于 2013-05-16T21:09:38.287 回答