我对这个提案的理解也是跟资源的加载没有关系(所以其实很中国网速慢这点也没 有什么关系,属于一个比较通用的优化),属于流程上的针对移动浏览器 的改进。

on 08/05/2014 14:27, Xidorn Quan wrote:
我想浏览器何时做渲染仍然应该由浏览器来决定,在移动环境下浏览器出于改善 用户体验,也应该会有更激进的渲染 策略。因此我认为仅是提示浏览器及早渲 染的意义不大。

我对这份提案的理解是,如果显示首屏所必须的内容已经全部加载,那么就提示 浏览器已经可以进行渲染了(提案中无论是加属性还是用 tokens 数,看过去似 乎都是这个目的?)基于这个理解,我提出了可以提供元素不会 relayout 这样 一个 hint,浏览器可以对每个拥有这样 hint 的元素进行及时的排版及渲染。

至于具体要不要放在 will-change,要不要用 never,其实这个我是没有特别的 偏好的,我只是觉得可以这么做而已。或许表达上稍微有点问题。


2014-05-08 16:10 GMT+10:00 John Hax <[email protected] <mailto:[email protected]>>:

    如果是这样,will-change: never 的名字可能需要改进。更重要的一点
    是,其实 will-change: auto 除了浏览器通过其他信息可以判定其实际上
    可能会 change 的元素以外,剩下的都可以认为是 will-change: never。
    你可以发现其中的问题——提示某个元素其layout是接近static的,与本提案
    的目标并无直接联系。本提案的要点,按照我的理解,与元 素是否需要
    relayout 无关,而是在于提示浏览器提早做 rendering (即使这样会造成
    之后的 relayout)。


    2014-05-08 13:59 GMT+08:00 Xidorn Quan <[email protected]
    <mailto:[email protected]>>:

        2014-05-08 15:50 GMT+10:00 John Hax <[email protected]
        <mailto:[email protected]>>:




            2014-05-06 21:06 GMT+08:00 Xidorn Quan
            <[email protected] <mailto:[email protected]>>:

                我觉得 John 说的非常好,现在这个提案过于限于具体实现,
                暴露浏览器实现细节。我也赞同放在 CSS 里面比较好。

                既然是 CSS 的话,我有一个想法,我们不如给浏览器这么一
                个 hint:这个元素的 geometry 不会随其后续元素的载入而
                发生改变。如果浏览器能得到这么一个 hint,它就可以立即
                对这个元素进行排版及渲染, 而不必顾忌后面的内容。

                更进一步地,我联想到了现在刚好在 FPWD 阶段的 will-
                change,我们可以提议给 will-change 加一个 keyword 叫做
                never 来给浏览器这么一个 hint,各位觉得如何?

                不过我不是很确定这个方案对于现有的浏览器解析策略 有没
                有可行性。(没有研究过相关流程)



             从我的理解上说,will-change: never 跟 will-change 的其他
            用法的场景差得太远。且并非所有属性对 layout 有影响。这让我
            想起了 table-layout: fixed 。

            但关键的一点,table-layout其实改变了 render 的结果。我不清
            楚你心目中的 will-change: never 是否也会改变 render 的结
            果。如果是改变的,那么就超出了本份提案的范畴(按照我的理解)。


        既然是 hint,按我的理解也是不会改变最终渲染结果的。

        确实这里的提案跟 will-change 的其他用法场景相差很远,只不过同
        样是用作 hint(CSS 里面似乎还没有其他 hint 性质的属性?)如果
        加进去,实际上是扩展了 will-change 的语义了。

        - Xidorn




--
Best Regards,
Xiaoqian (Cindy) Wu

回复