我有一个需要12个jQuery Mobile页面的MVC4 Web应用程序。
然后还有很多其他人。
我想在用户请求时添加一个页面,
将动态页面动态添加到项目中的最佳方法是什么?
包含页面脚本的适当网站(动态添加的网页)在哪里?
如果{-1}}中包含数据-ajax =“false”,究竟是什么意思?
此时我的应用程序几乎占了90%,但我在引用某些页面时遇到了严重问题,有时候视图中包含的所有页面都没有渲染或者没有运行脚本。
答案 0 :(得分:2)
我认为您在组织JQuery Mobile页面时有以下选择:
(a)一个包含所有页面的HTML文件(div为class =“page”)
这是最简单的方法,并保证可以正常工作,但文件可能会因大项目而变得太大
(b)链接到子HTML文件的一个主HTML文件
从UI的角度来看,JQM在加载子页面时默认使用“AJAX模式”,这使得转换像选项(a)一样流畅。这样做的缺点是子页面没有完全加载,即它的所有包含或脚本都没有被执行。在加载时,JQM使用class =“page”解析第一个div的子页面,提取div并将其添加到当前DOM。请注意,子页面不能包含多个“页面”,因为只会加载第一个页面。
要正确执行选项(b),您可以:
包含所有CSS,JS并在主页面中运行所有init脚本或
在链接上指定“data-ajax = false”或“rel = external”。这会强制JQM完全重新加载链接/子页面,但是使用这种方法会丢失流体转换。
答案 1 :(得分:0)
我过去使用的一种方法是将一个主页加载到浏览器中。
其余的“页面”只是HTML块,它们被加载到主页面中的“content”div中。显然会有一个初始的“页面”,它是初始加载时主页面默认加载的第一个HTML块,但是剩余的“页面”会根据需要加载(例如,当用户登录时。单击链接,等)。
我在主页面中使用了JQuery .Load()来删除每个“页面”的HTML块,并根据需要将它们加载到“内容”div中。
我发现这非常方便,因为所有脚本和样式都可以驻留在每个HTML块中(就像完整的独立页面一样)和JQuery .Load()将负责脚本的所有运行和样式的应用
在MVC方面,只有主页面的视图包含完整的HTML页面元素,并且结构化为“页面”内容的“容器”。 其余视图将仅包含每个“页面”的相关内容,并且结构适合适合“容器”。