windows-8 – WinJS没有卸载js / css
我正在开发一个
Windows 8 Metro应用程序,我发现(即使在我没有触及代码的示例应用程序中),当您在页面之间导航时,顶级“default.html”获取每个单独的js和应用程序运行期间加载的css文件.
这让我感到很头疼,因为我的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添加前缀. 基本上,设置临时命名空间以防止碰撞.它比手动删除链接标记要容易得多,并且比完全导航更能提供更好的应用体验. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- Windows安装MySQL
- .net – 在Win32/COM方法上调用PInvoke时,通常有一个明显的
- R CMD可以并行检查运行示例/测试(在Windows上)吗?
- Windows – 如何使用InnoSetup安装驱动程序?
- [DOS] XCOPY 参数说明
- 在Windows中运行HipHop PHP
- AutoHotKey:如何禁用Skype热键并使键盘正常运行
- IIS初始化(预加载),解决第一次访问慢,程序池被回收问题
- windows-phone-8.1 – Windows phone 8.1 BackPressed无法正
- 在netbeans中为.dll / .so文件提供“java.library.path”
- 右键单击Windows 10中带有AutoHotKey的托盘图标
- Windows使用Python虚拟环境
- windows – 读取Internet Explorer保护模式注册表
- windows-vista – 在Windows中打开演示模式?
- windows-phone-8 – 在发布模式下构建nuget包?
- windows – 我应该将所有服务器都放入我的域名吗
- R Performance Differential(Solaris vs Windows
- sublimetext2 – Sublime Linter在Windows中不工
- win-universal-app – Windows通用应用程序 – W
- 在Windows和活动目录上使用什么git服务器解决方案