如何在 chrome FreeBSD 23 上设置我的 reactjs 应用程序 运行 的样式?

How to style my reactjs app running on chrome FreeBSD 23 ?

我正在尝试 运行 我的 reactjs 应用程序在 Panasonic Vierra 智能电视浏览器上。我可以在导入 core-js 和 babel-polyfill 后加载网页,但是 UI 不合适。样式未按预期工作。同样的 UI 运行 在我的笔记本电脑 chrome 上很好。

当涉及到嵌入式浏览器时,所有的赌注都被取消了。他们通常使用旧的、低效的渲染引擎,只支持我们所知道的 CSS 的一个子集; 运行 在低功耗硬件上;在解释模式下执行 JavaScript 并且通常有其他缺陷,例如最大堆栈深度低和缺乏现代创新,如隐藏 类 或缓存 属性 查找。

这些浏览器的文档通常也很少。即使作为商业伙伴与制造商合作,您也很难获得很多帮助。这是一个问题,因为电视浏览器通常有很多错误,很少更新,而且它们的低性能似乎加剧了它们的问题。我在过去看到过渲染竞争条件和各种讨厌的事情。他们真的很痛苦。

我给你的建议是:

  1. 坚持使用 CSS2 样式功能,除非您可以证明支持特定的 CSS3 模块。这可能意味着使用浮动和表格布局您的页面。
  2. 尽可能少地进行 JavaScript 渲染。我不会在这个用例中使用 React。
  3. 编写 JS 时注意 IE 时代的 "classical" 优化:在闭包中缓存 属性 查找;避免绑定新功能;警惕堆栈深度(避免 React 的另一个原因 - 组件可以调用一些深度嵌套的函数调用)
  4. 避免转译语言。您需要完全控制执行代码,因为 运行time 的性能太差了。这可能意味着告别 JSX 和 Typescript 等细节。

总的来说,如果您正在为电视编写 JS 应用程序,您将不得不稍微远离 webdev 思维方式,更多地转向嵌入式系统思维方式。

祝你好运!

事实证明,从 bootstrap 4 切换到 bootstrap 3 解决了我的问题。此外,一些较新的 API(如 fetch)不受旧浏览器的支持。我不得不切换回 XMLHttpRequest 来进行网络调用。其他一切,包括 React(使用 Typescript)和 firebase realtime,工作正常。

我发现以下两个网站很有用:

1) https://www.whatismybrowser.com/ 查看您当前使用的浏览器或浏览器版本。

2) https://caniuse.com/ 检查不同浏览器对特定 javascript 功能的支持。