css - 如何设置我在 chrome FreeBSD 23 上运行的 reactjs 应用程序的样式?
问题描述
我正在尝试在 Panasonic Vierra Smart Tv 浏览器上运行我的 reactjs 应用程序。我可以在导入 core-js 和 babel-polyfill 后加载网页,但是 UI 不合适。样式未按预期工作。相同的 UI 在我笔记本电脑的 chrome 上运行良好。
解决方案
当谈到嵌入式浏览器时,所有的赌注都没有了。它们通常有旧的、低效的渲染引擎,只支持我们所知道的 CSS 的一个子集;在低功耗硬件上运行;以解释模式执行 JavaScript,并且通常存在其他缺陷,例如最大堆栈深度低以及缺乏隐藏类或缓存属性查找等现代创新。
这些浏览器的文档通常也很差。即使与制造商合作作为商业合作伙伴,您也很难获得很多帮助。这是一个问题,因为电视浏览器通常有很多错误,很少更新,而且它们的低性能似乎加剧了它们的问题。在过去,我已经看到渲染竞争条件和为它们开发的各种讨厌的东西。他们是一个真正的痛苦。
我给你的建议是:
- 坚持使用 CSS2 样式功能,除非您可以证明支持特定的 CSS3 模块。这可能意味着用浮动和表格布置您的页面。
- 尽可能少地进行 JavaScript 渲染。对于这个用例,我不会使用 React。
- 写你的 JS 时要注意 IE 时代的“经典”优化:在闭包中缓存属性查找;避免绑定新功能;警惕堆栈深度(避免 React 的另一个原因 - 组件可以调用一些深度嵌套的函数调用)
- 避免转译语言。您需要完全控制正在执行的代码,因为运行时的性能很差。这可能意味着向 JSX 和 Typescript 之类的细节挥手告别。
总的来说,如果你正在为电视编写 JS 应用程序,你将不得不稍微远离 webdev 的思维方式,而更多地转向嵌入式系统的思维方式。
祝你好运!
推荐阅读
- c# - 如何在 Xamarin Forms MVVM 中将事件转换为命令
- html - How do you make an element circular?
- azure - 在 Visual Studio 中发布 Webjob 失败且没有错误
- java - Spring批量跳过不适用于远程分块
- input - 从一个文件中传递多个变量并一个一个地启动python脚本
- node.js - 即使直接从容器中工作,也找不到 docker-compose 模块
- flutter - Flutter 桌面“悬停”无法识别
- uart - ESP32 MicroPython 串行 UART - 重新启动连接时已安装驱动器
- javascript - 无法运行 Vuetify + Leaflet >> Webpack 错误
- python - Kafka 根据请求使用单个消息