【问题标题】:Knockoutjs not updating on lastest version of EdgeKnockout Js 未在最新版本的 Edge 上更新
【发布时间】:2016-08-30 23:32:16
【问题描述】:

我有一个knockoutjs 应用程序,它已经运行多年了。浏览器通过 SignalR 接收消息,然后由 Knockoutjs 渲染。

现在,如果您在 Microsoft Edge 中运行应用程序,屏幕上的相同字段不会更新,而其他字段正在更新。总是相同的字段更新一次,然后再也不更新。如果您检查 DOM,那么您可以看到它正在发生变化。

经过大量排除,我发现问题似乎是由 1 行 css 引起的

html { text-transform: uppercase; }

我已经整理了一个关于这个错误的小演示,然后你可以在 Chrome/FF/IE9/IE10 vs Edge 中运行它。在 Edge 中运行应用了样式的代码,然后将其注释掉以查看值的更新。

http://jsbin.com/baqozusuge/edit?html,css,js,console,output

github上的代码链接https://gist.github.com/anonymous/de7610c341e6ee737d8290eb608afb57

有人知道这到底是怎么回事吗?!似乎 Microsoft Edge 决定根据当前显示的值的相似性来缓存显示。

【问题讨论】:

  • 这绝对是一个特殊的问题! Edge 并不完美,这似乎是一个重绘问题——当将一些 Math.random() 附加到 cld 的每个属性时,它每次都会更新它,但是没有它,即使调用 ko valueHasMutated() 也无济于事。而且我还注意到间隔并不总是更新随机值。不知道为什么 html 上的 text-transform 会修复它;(
  • 是的,好像因为文本转换为大写,Edge 正在比较这些值以确定是否需要重绘。

标签: css knockout.js microsoft-edge


【解决方案1】:

这是正式的 Microsoft 错误,因此无法通过代码“修复”。 https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/7451374/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-14
    • 1970-01-01
    • 2015-01-13
    • 1970-01-01
    • 2017-01-21
    相关资源
    最近更新 更多