Re: 首屏渲染优化提案反馈(原:Re: 答复: 中文兴趣小组5月5日电话会议)

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

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

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


2014-05-08 16:10 GMT+10:00 John Hax <johnhax@gmail.com>:

> 如果是这样,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 <quanxunzhen@gmail.com>:
>
> 2014-05-08 15:50 GMT+10:00 John Hax <johnhax@gmail.com>:
>>
>>
>>>
>>>
>>> 2014-05-06 21:06 GMT+08:00 Xidorn Quan <quanxunzhen@gmail.com>:
>>>
>>> 我觉得 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
>>
>
>

Received on Thursday, 8 May 2014 06:28:52 UTC