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

感觉Will-change是为了在当前页(被应用的元素至少渲染过一次了)空闲时提前做些渲染和j减少不必要缓存等,加快被引用元素变化发生时的响应速度。
首次加载应该也算http://www.w3.org/TR/2014/WD-css-will-change-1-20140429/这段提示“Authors should avoid overusing this property,
		and shouldn’t apply it to an element unless it is known (or expected)
		that the element will change in the indicated way soon.
		For example, applying will-change to an element from a static CSS stylesheet
		is probably an error;
		most of the time,
		will-change should be applied by scripting,
		some time shortly before starting an animation or other change,
		and should be promptly reset to its initial value of auto
		when the element stops changing.
	”说的避免情况。而且大范围用Will-change不知会不会和子元素使用时冲突。

技术上如果Will-change能实现,firstpaint应该也没问题。

use-case,看可不可以举些:页面关键内容主要在首屏,用户主要操作在首屏,解放一些lazyload,对于一些单页app可以人为指定先显示哪页,而不是按文档中先后顺序





From: minyue@baidu.com
To: hucm@act.buaa.edu.cn; quanxunzhen@gmail.com; johnhax@gmail.com; kanghao.lkh@alibaba-inc.com; zhiqiang.zhang@intel.com
CC: public-html-ig-zh@w3.org; wuping02@baidu.com; wangyaolong@baidu.com; hetao01@baidu.com; liangtao01@baidu.com; xiaoqian@w3.org; angel@w3.org
Date: Wed, 7 May 2014 07:36:55 +0000
Subject: 答复: 首屏渲染优化提案反馈(原:Re: 答复: 中文兴趣小组5月5日电话会议)









Hello all,
 
非常感谢大家的宝贵建议!期待这份提案在大家的帮助和我们的改进下不断优化。
 
总结了一下大家的意见,主要有三点:
 

1.      
认为这份提案提交在CSS Will Change中更合适;
这部分我们会和技术人员再商量一下,研究一下浏览器解析策略是否可行性,稍后会有反馈。
 

2.      
这份提案的user case
不够清晰不够有说服力;
这部分也是我们一直想要请教的,在邮件组中小倩也提出了同样的问题,大家印象中有什么成功的技术提案的use
 case可以作为这次的参考吗?
 

3.      
这份提案的优化效果应该有一个对比说明。
这部分的测试数据我们之后也会补上。
 
 
谢谢!
 
闵月
 


发件人: Hu, Chunming [mailto:hucm@act.buaa.edu.cn]


发送时间: 2014年5月7日 0:46

收件人: 'Xidorn Quan'; 'John Hax'

抄送: 'W3C HTML5 
中文興趣小組'

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


 
这个hint让我想起前两天刚翻译的一个news,后来发现Xidorn在后面的邮件也提到了。
http://www.chinaw3c.org/archives/498/

 
2014年4月24日,W3C的CSS工作组发布了CSS
 Will Change Module Level 1的首份标准工作草案。
http://www.w3.org/TR/2014/WD-css-will-change-1-20140429/

 
浏览器在做CSS渲染时有一系列复杂的优化,这些优化可以让Web页面更快、更有效的加载,但使用这些优化都有一个启动开销,过大的启动开销会严重影响页面对用户响应。该文档定义了一个有趣的CSS新属性--will-change,开发者可以通过这个属性提前通知用户代理(如浏览器)某个元素的内容未来将有何种变化。这样,用户代理就可以提前为优化渲染这些元素做好准备,如在动画真正开始前,提前进行一些准备工作。
 



From: Xidorn Quan [mailto:quanxunzhen@gmail.com]


Sent: Tuesday, May 06, 2014 9:07 PM

To: John Hax

Cc: W3C HTML5 中文興趣小組

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


 

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



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



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



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


 

2014-05-06 17:57 GMT+10:00 John Hax <johnhax@gmail.com>:

很抱歉未能参加昨天的电话会议。

 


这份提案粗看了一下,总体感觉还是需要很多改进的。


 


 


第一,完全赞同kenny所言,在初期最重要的是把user cases写清楚,有说服力。


第二,现有提案过于限于具体实现方法,特别是暴露太多浏览器内部实现细节,因而显得“dirty”。比如token之类的,对于大部分开发者来说都无法理解,罔论使用?


 


下面讲几个具体想法:


 


1. 这个东西既然与呈现有关,宜以CSS实现,而不是增加tag/attribute。正如viewport,虽然最初以meta形式出现(因为易于实现),但标准化后还是在CSS中。


 


2. 具体优化策略目前似乎只有token数(用户指定或云服务计算)?这过于狭隘了(完全来自于当前浏览器的算法细节)。实际上实践中对于首屏优化有许多相关问题。例如网络传输时是否使用chunk编码,是否可认为强制发送一个chunk表示要开始首屏rending?那么为什么不是在spec中规定这样的行为?(注意我只是提出一个反问,并不是建议要提供这样的特性。)


 


3. 总体上来说,具体优化算法应该是浏览器自己决定,而不是过多由开发者指定。给开发者提供细粒度的控制是需要谨慎的。我认为比较好的方式是允许开发者指定大略的策略。比如 layout-optimize: [policy]
,policy的取值可以是 auto(浏览器自行决定),fast(尽快展现),normal(传统方式),progressive(有一个元素就呈现一个元素)……


 


 



 

2014-05-06 12:10 GMT+08:00 Xidorn Quan <quanxunzhen@gmail.com>:



 
我猜这个邮件本意是要发到兴趣小组的,所以转发过来



---------- Forwarded message ----------

From: chaixiaoxing <public_00@hotmail.com>

Date: 2014-05-06 14:04 GMT+10:00

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

To: Xidorn Quan <quanxunzhen@gmail.com>







对于<body>A(设置首屏)

B</body>的需求,更期望有个技术是服务器只传A给浏览器,等A被渲染后再自动续传B。移动设备,尤其是手机,页面节点一般比较少,白屏时间开销感觉主要在浏览器和服务器通信上,如果A和B都parse后,目测B的layout的时间增加些ms,至于B的paint时间,浏览器应该都做了不在可视区不paint的优化了。



按现在提案,感觉用属性更好,如果能用css更好了,用新标签影响页面DOM,而且增加标签的相关实现。







> From: quanxunzhen@gmail.com

> Date: Tue, 6 May 2014 12:25:49 +1000

> To: kanghao.lkh@alibaba-inc.com

> CC: minyue@baidu.com; 
public-html-ig-zh@w3.org; 
wuping02@baidu.com

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




>

> 2014-05-06 1:20 GMT+10:00 吕康豪(平寿) <kanghao.lkh@alibaba-inc.com>:

> > (2014/05/05 10:36), Min,Yue wrote:

> > HTML 没有 block 排版元素这个概念(那是 CSS
的概念),可以从元素分类[1]选

> > 一个组合出来(感觉是 heading content + sectioning content + <div>)。

> >

> > 不过我觉得另一个比较语义的要求是规定这个属性只能用在 <hr> 上。这样

> >

> > <hr firstpaint>

> >

> > 也有点像是锦江提的

> >

> > <!--firstpaint-->

> >

> > 了。

>

> 放在一个单独的自关闭标签里面这个方法我觉得比现有的提案要好,这样也不需要区分打开时还是关闭时,这个标签作为一个整体包括在首屏范围内。语义上可以解释为这个属性将这个标签变成了一个

> hint,会比将属性本身作为 hint 要稍微更容易接受一点。

>

> 另外,是否有相关的数据可以表现这种优化潜在的作用?比如说,到浏览器可以正确渲染出首屏内容的点为止,载入耗时多少,到浏览器以现有策略准备开始渲染首屏内容时,载入耗时为多少,这样的表格?

>

> - Xidorn






 


 


 		 	   		  

Received on Wednesday, 7 May 2014 09:30:51 UTC