我正在开发一个
Windows 8 Metro应用程序,我发现(即使在我没有触及代码的示例应用程序中),当您在页面之间导航时,顶级“default.html”获取每个单独的js和应用程序运行期间加载的css文件.
不卸载
JavaScript和CSS是一个慎重的选择,而不是意外或疏忽.
首先,要了解页面控件纯粹是一种JavaScript构造 – 浏览器引擎完全不了解它们.浏览器只看到一块由脚本动态生成的DOM.
Web平台不允许您卸载脚本文件 – 一旦它们被加载到上下文中,它们就永远存在.
使用CSS,他们可以尝试删除标签,但它会打开一堆蠕虫.根据导航到的订单页面,您最终可能会在同一个应用程序中应用不同的样式.如果两个页面引用相同的样式表怎么办?你是否两次添加相同的链接标签?你删除哪一个?
一团糟.相反,WinJS保证脚本和样式表只会被引用一次,第一次被引用.因此,您可以让应用程序中的每个页面都引用“myStyles.css”,它只会被加载一次(并且只会有一个样式标记).
那你怎么做才能防止你所看到的问题呢?首先,请记住您正在构建一个应用程序,而不是一个随意增加新内容的网站.确定您的一般风格和课程.将共享样式放在default.css中,并从default.html文件中引用它.
<div class='intro'></div>
做
<div class='page1-intro'></div>
然后你保证避免碰撞.
如果您按ID引用页面元素,请不要这样做.在页面中使用ID会导致各种各样的潜在怪异(如果你同时渲染相同的页面控件两次怎么办?另外,直到页面加载到DOM之后ID才会存在,这意味着数据赢 – ID的选项引用不起作用).但是,如果你坚持,再次考虑使用页面为id添加前缀.