科技网

当前位置: 首页 >电商

阅读器渲染页面的进程Firefox阅读网页时阅读面积增大的技能

电商
来源: 作者: 2019-05-17 14:08:09

1 : Firefox阅读网页时阅读面积增大的技能

觉得自己的显示器太小,阅读网页时总感觉看不完么?或你装了太多插件,使得你的Firefox过于臃肿么?

那末你真的应当尝试1下下面的9种方法,它们将让你的阅读面积迅速增大。

1.小号的图标

你真的需要那些大号的图标?在导航栏上右键,点击定制,将使用小图标打上勾便可。

2.微菜单

点此安装这个附加软件,它将把你的菜单整合到1个按钮里。

3.隐藏菜单栏

当你需要菜单栏时,按ALT键便可。

4.隐藏标签栏

这个附加软件能隐藏你的标签栏。当你的标签多起来时,这显得相当有用。在这里下载它。

5.Vertigo

当你具有1台20寸或更大的宽屏显示器时,Vertigo能将你的标签栏侧放,更好的利用屏幕空间。

6.全屏阅读

Firefox自带的全屏功能已很强大了,不过如果你想体验真实的全屏,你可以尝试1下这个附加软件。你的全部屏幕将只有页面。

7.MiniFirefox

这个附加软件将自动隐藏很多不经常使用的界面元素。

8.Firefox UI Tweaker

这个强大的扩大软件,能让你对Firefox做出不计其数的修改。

9.Little Fox

如果你的界面上有太多元素,那末这款插件1定合适你。它将主题进行重新修正后,各项界面元素都得以缩小。安装它,使用Little Fox主题,重启你的阅读器,你就会发现它把Firefox弄很多小了。虽然对眼睛来讲不那末舒服,但真的能提升很多空间。2 : 华为P10曲面版渲染图:冷艳的无边框

【手机中国 新闻】今年注定是手机圈新机大爆发的1年,不管是国产还是外国大厂都卯足了劲大干1票。国产手机里最受期待的肯定有华为P10,有消息称,华为P10在坚持徕卡双摄的基础上,还会加入时下流行的双曲面版本。近日网上就曝出了1组P10的渲染图。

华为P10渲染图

这个系列的渲染图充分向我们展现了P10具有双曲面以后的冷艳颜值。本来很方正的设计语言在曲面线条的勾画下变很多了1丝温顺,另外由于曲面的视觉效果,黑边问题也不复存在,视觉效果更好。据称,华为P10将会配备1200万像素+2000万像素的双摄像头,而电池容量则会增至3100mAh。如此强悍的华为P10,肯定不愁销量了吧!

3 : 关于提高阅读器渲染页面速度的建议

怎样尽量的缩短阅读器上页面渲染的时间,文章从以下几方面着手:

写出高效的css代码

避免使用css表达式

把css文件放在页面顶部

指定页面图片的尺寸

页面头部标明文档编码

1,写出高效的css代码

首先弄清阅读器解析html代码的进程:构建1个dom树,页面要显示的各元素都会创建到这个dom树当中。每当1个新元素加入到这个dom树当中,阅读器便会通过css引擎查遍css样式表,找到符合该元素的样式规则利用到这个元素上。css引擎查找样式表,对每条规则都按从右到左的顺序去匹配。

了解进程后,我们可以看出可以从两方面优化我们的css代码:1,定义的css样式规则条数越少越好,所以赶快删除css文件中没必要要的样式定 义;2,优化每条规则的选择符书写方式,尽可能让css引擎1看就知道这个规则是不是需要利用到当前这个元素上,让引擎少走没必要要的弯路。

如以下几种效力不高的css书写方式:

body * {...}

hide-scrollbars * {...}

b, 用标签做关键选择符

ul li a {...}

#footer h3 {...}

* html #atticPromo ul li a {...}

c, 弄巧成拙的写法

ul#top_blue_nav {...}

form#UserLogin {...}

d, 给非连接标签添加 :hover 伪类,这会对用了strict doctype的页面在IE7和IE8下变的很慢。

h3:hover {...}

.foo:hover {...}

#foo:hover {...}

div.faa :hover {...}

优化建议:

a, 避免使用通配符;

b, 让css引擎快速辨别该规则是不是适用于当前元素:多用id或class选择符,少用标签选择符;

c, 不要弄巧成拙把id和class或标签和class等连着写;

d, 尽可能避免使用后代选择符,去除没必要要的先人元素,可以斟酌使用class选择符来替换后代选择符;

/*给无序和有序的li定义不同色彩,你可能会这样写:*/

ul li {color: blue;}

ol li {color: red;}

/*给li添加class,这样定义效力会更高:*/

.unordered-list-item {color: blue;}

.ordered-list-item {color: red;}

e, 避免给非连接标签添加 :hover 伪类。

2,避免使用css表达式

css表达式仅在ie阅读器下才起作用,微软已在ie8后不推荐使用,由于它会严重影响页面性能:任什么时候候,不管任何1个事件被触发,例如窗口的 resize 事件,鼠标的移动等等,css表达式都会重新计算1遍。

3,把css文件放在页面顶部

把外联或内联样式表放在body部份会影响页面渲染的速度,由于阅读器只有在所有样式表下载完成后才会继续下载页面其他内容。另外,内联样式表(放在<style>内的样式)有可能会引发页面重新渲染或显示隐藏页面中的某些元素,建议不要使用内联样式表。

4,指定页面图片的尺寸

指定页面图片尺寸,要符合图片的真实尺寸(不要通过指定尺寸来缩放图片),可以免尺寸改变致使的页面结构效果的变化,所以对加快页面渲染速度有益。

5,页面头部标明文档编码

HTML文档是以包括文档编码信息的数据流方式在网络间传输。页面的编码信息1般会在HTTP响应的头部信息或在文档内的HTML标记中指明。客户端阅读器只有在肯定了页面编码后才能正确的渲染页面, 所以在绘制页面或履行任何的javascript代码前,大部份的阅读器(ie6、ie7、ie8除外)都会缓冲1定字节的数据来从中查找编码信息,不同 的阅读器当中预缓冲的字节数是不1样的。如果阅读器在接收到了设定的预缓冲数据量后还没有找到页面的编码信息,便会根据各自指定的默许编码开始渲染页面,如果这时候再获得到页面编码信息,而又跟现在所用编码不1致,那全部页面就得重新渲染,某些情况下乃至需要重新获得数据。所以,对大小超过1KB的页面(根据在各阅读器的测试情况,预缓冲数据量最多的也就1KB)应当尽早标明编码信息。

优化建议:

a, 尽可能在HTTP头部信息中标明页面编码(这个需要在服务器端设置)。像Firefox阅读器,如果在HTTP头部信息就获得到了编码信息,便会预缓冲更少的数据从而减少没必要要的数据缓冲时间;

b, 在HTML的 <head> 部份标明编码信息;

c, 要习惯给文档指定编码;

d, 给页面指定的编码要符合页面实际编码;如果你在HTTP头部信息和HTML标记中同时指定了编码,需确保编码信息1致。

注:相干网站建设技能浏览请移步到建站教程频道。

4 : Reddit: 从扩大到每个月10亿页面阅读量的进程中学到的经验教训

Jeremy Edberg,reddit正式聘请的第1位员工,在RAMP大会上做了1个极为精彩的演讲,传授了许多如何创建1个成功社交网站的经验。各位可点击Scaling Reddit from 1 Million to 1 Billion–Pitfalls and Lessons(将reddit访问量从1百万提升到10个亿-圈套与教训)的链接来观看演讲视频。

jeremy借用了褒贬参杂的方式来总结经验教训,他分享了在推行Reddit进程中所犯的比比毛病,但也让我们看到他们做出的正确决定。不过有点使人吃惊的是,jeremy现在是Netflix[3]的可靠性架构师。所以从他的演讲中也可感受Netflix的1些观点。

令我印象深入的几个教训是:

把SSD看作是便宜的内存(RAM),而不是昂贵的硬盘。当reddit由于数据库的原因从机械型硬盘升级到固态硬盘(SSD)后,其服务器数量从12台降为1台,且还有极大的空间充裕。SSD虽比机械式硬盘贵了4倍,但是你会得到16倍的性能提升,真是物有所值。

给用户1点点权利,看看他们怎样做,然后把其中的好点子变成网站的功能。reddit从用户那里所学极其丰富,且其网站的流畅运作很大程度上倚赖其用户,这是我取得的最大收获。用户会告知你很多你不知道的事情,reddit gold就是个很好的例子,刚开始它只是社区里大家开的玩笑,reddit将其兑现为产品,并深得用户爱好。

项目开始时就建设1个可扩大性架构是没必要要的。开始时你其实不会知道网站将来的功能集,所以你也不会知道你有哪些扩大方面的问题。等到你的网站开始壮大时,你自然就能够了解网站会在哪些方面有扩大问题。

把未登录用户当作2等公民。通过总是给未登录用户返回缓存内容的做法,reddit将包袱扔给了Akamai而本身的流量畅通,这类做法使其网站性能大大提升。

Jeremy的分享远不止于此。从reddit扩大早期的毛病中我们能学到的经验教训很多,这里是我对Jeremy演讲的1些释读:

统计数据

访问流量大约每15个月翻1番。

上个月,来自177个不同国家的 67,328,706名独立访客阅读了reddit网站上 4,692,494,641个页面。这个演讲是在reddit的第10亿页面阅读节点完成时进行的,其目前架构与之前架构的差异没法确认。

28名雇员。

每名雇员应对大约240万独立访客。(链接)

数以千计的志愿者版主。

在2012年时,他们用240台服务器来支持每个月20亿的页面阅读量和Postgres里的2TB数据。所有高访问率数据都从EBS转移到本地临时磁盘(以保证网站运行流畅)。

公司源起

Reddit始于2005年。开创人首先带着“通太短信点餐”的点子去寻求Y Combinator的资金支持但被谢绝,他们回头和Paul Graham(Y Combinator的开创人,美国著名程序员、风险投资家、博客和技术作家)讨论并产生了开发互联网网页建设的点子,即reddit。那时他们其实不知道掘客(Digg)的存在。

从数据中心开始,随后逐步将功能转移至亚马逊弹性计算云(EC2)。

2006年,开始通过EC2使用S3提供存储和服务标志。

2007年,开始使用S3支持缩略图服务。

2008年,以vpn通道连接数据中心的方式在EC2上进行批处理。

2009年,整站使用EC2服务。网站停运整整1天,将数据全部迁移到EC2。这是《数据引力》的重大案例,随后还会谈到。

EC2

迁移到EC2的缘由

不断堆叠机柜其实不有趣。不想租用更多的机柜,买更多的服务器。

建立数据中心,初期数据的增长是没法预测的。

对1个4人小组而言,本钱相对下降了。亚马逊的EC2比他们在San Francisco的数据中心价格便宜了29%。

EC2不是万能的。如果你受够了高网络延迟和邻居发出的噪音,斟酌下迁移到EC2上。1个好处是网站可以自由的壮大。

熟习EC2上的资源限制

所有的资源对每一个帐号都有限制。

亚马逊也不清楚其中的1些限制是甚么。

跟踪限制,在你需要的时候扩大限制范围。

捕获异常以发现什么时候临界条件被触发。

架构

Reddit的架构是很直观的。**用户连接到1个可以与利用纽带直接通话的网络纽带。这个利用纽带又与memcache, Cassandra, 还有 Postgres通话,Postgres使用的是1个主从关系网络。这是1个使用Cassandra 和 Postgres的批处理系统。

相比较而言,Netfli使用的是1个服务型的架构,各部份通过REST API相互之间通话。

优点:方便自适应范围,由于只有服务器需要调剂范围;更容易计划容量;毛病更容易找出,由于他们在REST框架里是独立的;变化效果10分精确;本地缓存更加高效。

缺点:需要多个Dev或Dev团队在多个服务器上工作,所以人工本钱增加;需要1个公共开发平台避免重复工作;对1个小团队来讲,管理本钱很大。

Postgres是1个非常优秀的数据库**他可以创造出10分优秀,快速键值贮存的数据库。

邮件系统是1个大问题** 信息传送很难弄好,开始的时候可以用他们自带的邮件系统,但是现在可能要用专门邮件系统提供商的服务了。

队列是救世主** 在组件至今传递任务的时候,放入1个队列里。你将会得到1个短小精悍的缓冲器。(Reddit用的是[RabbitMQ](http://www.rabbitmq.com/))

混用HAProxy和Nginx** 有些阻塞是相互的。对负载均衡尝试Nginx无效以后可以试试HAProxy(在负载均衡崩溃的时候)。他对L7负载均衡很有用,Nginx依然可以用来终止SSL和服务静态内容。

代码

框架。使用Pylons (Django太慢了),它就是1个基于Python的框架。从1开始,它就很容易上手。由于不匹配你的用例,终究它们总会出问题。Pylon终究做出了很多改变,(原来)它升级到新版本是很困难的(现在已修复这个问题)。(现在)可使用Pyramid (Pylons的新名字)。

基于线程的事件?基于线程可以提早依大小排列,但是排列多是毛病的。基于事件可以处理更多的连接而没必要在遇到瓶颈时继续陷在瓶颈中。你希望花更多的时间去计划线程池的尺寸或处理突然遭受到的瓶颈吗?

开源有益。Reddit是在开源代码上构建的。不需要付费的软件不错,特别是在开始的时候。

数据

数据将是你的公司最重要的资产。Facebook, Google和Flickr这样的公司的根本就是数据。

沉重的数据。当你把数据放在1个地方,你就需要在这个地方放置你的利用。所有的利用都是围绕数据进行的。数据构成了1个引力中心,其他东西都要向它靠近,由于数据最难移动,而且数据量越大越难移动。目前,把数据移出EC2非常的贵。这就是 EC2 存储数据免费,迁移数据收费的缘由。他们想要你把所有的数据都寄存在云服务器上。

关系型 VS 非关系型。reddit 的大部份数据都是键值对,存储在Postgres数据库中。所有触及到金钱的数据存储在关系型的数据库中,由于可使用事务和简便地分析。

Postgres 是防弹的。它像岩石1样坚固,它自己从未出过问题。即便有问题,也是其他它周边系统的问题,比如使用Python编写的复制系统。很难找到熟习Postgres的专家(由于它不需要专家解决奇怪的问题)。

键值存储选择了Postgres而不是Cassandra是由于Cassandra当时其实不存在,而且Postgres速度非常快,还已原生支持键值。

分库分表。写操作被拆分到4个主数据库中:连接、帐户、子自动、评论、投票、其它。

每个主数据库都有从数据库。投票数据库只有1个主库和1个从库。评论数据库有1个主库和102个从库。

如果可以,尽可能避免直接从主库读取数据,从从库读取数据以使主库专用于写入数据。

客户端代码负责从库间负载均衡。如果1个从库响应较慢,访问另外一个从库。

实现了1个数据访问层,名称为thing。

这类方法已使用了很长时间。混合使用数据库分库分表,主从读写分离,跟踪数据读取性能保持负载均衡。

Cassandra

快速写入,快速负查询,简单高可扩大性,无单点故障问题

在 Netflix(美国1家视频网站),数据分散地存储在3个不同的区域。每个区域都有全部区域的数据。即便1个区域的数据丢失了,网站依然可以正常运行。

把投票数据转换后存入Cassandra 是 reddit 1次巨大的进步。Cassandra 的 bloom 过滤器显著地提高了负查询的效力。比如它可以很快查询出你没有投票过的意见,因此负查询的结果显示很快。(详见这里)

社会

在2008年,reddit开源了

用户可以浏览代码,从而知道没有人破坏投票结果

用户可以增加他们早就想增加的功能,reddit会提供运行平台。开起来,用户其实不是不想写代码。

招聘。他人会了解代码,所以更容易招聘。推销自己的想法来更好地合作

蠕虫事故。有人指出了如何在1个网页中注入过剩的javascript代码来写1个蠕虫的方法。这个方法并没有打算被泄漏出去,但是终究还是泄漏了。在那1天,开创人之1正在结婚,全部团队都在从婚礼返回的飞机上。但是,1个用户已快速响应,提交了1个禁止蠕虫传播的补钉。开源可使得在危机时刻社区可以提供帮助。

reddit怎样赚钱?

侧边条广告,自助广告,推销,reddit币,市场。

注意,reddit还没有实现盈利 (链接)。这带来1个问题,像reddit这样的云端站点能否实现盈利?

另外,reddit现在不再属于Condé Nast,它是独立的 (link)。

毛病

没有斟酌迁移到EC2以后增加的延迟。在数据中心,机器之间的访问时间都是亚毫秒级,所以加载1页可以调用1000次memcache。但是在EC2,情况产生了变化, Memcache的访问时间增加了10倍,致使原来的方法行不通了。解决方案是批量调用memcache,这样1次要求可以得到大量的结果。

过于相信许诺。Amazon其实不总是依照许诺交付,所以有时要油滑1些处理。设计的时候就要斟酌毛病,而不是试图修复毛病。(这里没有参考文献,或许EBS是个例子?)

在生产环境中使用最新的产品。当Cassandra还处于开发周期的初期的时候,我们就开始使用它了。它现在很棒,但是当时有很多问题。

早就应当把更多的工作量迁移到client端。服务器端做了很多页面渲染的工作,但是这些工作应当被推到客户端。Facebook是这方面的大师。你会得到1个矩形,和很多空的div,然后通过API调用来填满这些div。这就是他们早就希望reddit可以做的事情。这可让我们的范围更快地增长。而且这也对调试有好处,由于我们很容易知道哪一个API出了问题。

没有足够的监控,而且用了1个可视化效果不太好的监控系统。最开始我们使用Ganglia,它可以展现非常漂亮的图表,但是它比较难用,而且变化太快,特别是在1个实例进进出出的虚拟机环境中。

没有让数据过期。在reddit你能看到从最初开始的评论。后来他们开始增加1些限制,使得你不能对旧的评论投票,也不能回复古的帖子。这会造成数据量愈来愈大,愈来愈难把热数据放在数据库里面。

没有使用1致性哈希算法。Not using consistent hashing. 当往cache中hash数据的时候,可能会出现这样的问题,当你增加更多的cache的时候,你的数据还会被hash到原来的cache中,不管你有多少chache。这样增加cache的时候,你没法保证负载均衡。1致性hash是解决问题的办法。我们迁移到Cassandra来解决这个问题。

教训总结

最关键的是在用户遇到问题之前就找到系统的瓶颈。

使用代理服务器不再是拓展的良方。过去可以根据用户访问的URL来分流。Reddit曾也有过1个系统用于监控每一个URL上系统服务的时间。用户要求会根据访问的URL的不同,进入到不同的响应通道。但是全部系统的响应速度总是此起彼伏。根据平均响应时间来分流以到达系统的巨大提升,已完成成为过去时了。

让1切自动化。如果你能对你的基础架构像对待你的代码周全,可以扩大的。那末所有事情都应当是其他的所有工作也应当是可以自动化配置的。

项目开始时就建设1个可扩大性架构是没必要要的. 在项目开始的时候你不知道它会有甚么特性,那末你只是想知道拓展会有甚么问题。但是等到你的站点扩大后,你就可以看到拓展的具体问题在甚么地方。

不要1开始就使用面向服务的架构。记住,面向服务对1个中大型网站来讲是很好的。但如果是起步期的站点就有点太超前了。

不要寻求潮流。只有1小部份的流行技术是可行的,比如,node.js这样的。

对所有的功能设限。对所有会不断重复产生的事件设限制,必要的时候放宽或下降限制标准。如果添加限制,会排挤出1部份用户,但是保护了系统。举个子版块上传文件的例子。有用户指出他们上传的文件数多到可以破坏系统。也不要允许上传巨型文本。 其他人会教你怎样让你接受5GB的文本文件。

多手准备. 当在设计阶段的时候就假定以后系统要不断扩大的时候,那末开始的时候就不要只准备1台利用服务器,1台数据库和1个缓存了。那末以后做横向拓展的时候会容易的多。

用C语言重新Python代码。随着reddit的不断拓展,大多数重复的功能都用C语言重写了原来的Python代码,且取得了很大的速度提升。特别是过滤器、markdown标签的渲染及memcache的调用。用C重写Python代码的优势是简单高效。

保证数据库设计尽量的无模式。这样会使得在添加新特性的时候变得简单。你所做的只是添加1些新的属性而不用修改表结构。

过期数据。停用那些老旧的线程,创建好1个完全的页面并添加到缓存中。这就是处理那些可能致使你数据库奔溃的老旧数据的方式。一样的,不要允许对很久之前的评论点赞或加平路,用户几近不会注意到的。

把SSD看作是便宜的内存,而不是昂贵的硬盘。当reddit把数据库的存储装备从机械型硬盘升级到固态硬盘(SSD)后,服务器数量从12台降为1台,且响应还更快。SSD虽比机械式硬盘贵了4倍,但是你会得到16倍的性能提升,真是物有所值。Netflix板块中的1些最大Cassandra节点都是采取的SSD存储,性能得到了巨大的提升。

每一个工具都有不同的适用处景。Memcache中的数据是不做持久化的,但是非常快,那末投票数据存在它里面可以是页面的渲染以最快速度完成。Cassandra是持久化的,而且快,布隆过滤器的使用也是它可以找出没有命中的查询,所以使得它很合适存储没有在memcache中存储的投票数据的副本。Postgres是非常可靠的关系型数据库,可以用来寄存Cassandra中投票数据的备份(Cassandra中的所有数据在必要的情况下可以从Postgre中获得),在做批量操作的时候,有时也需要依赖关系数据库的功能。

把未登录用户当作2等公民。过去80%的要求来自未登入的用户,现在是接近50%。通过总是给未登录用户返回缓存内容的做法,reddit将包袱扔给了Akamai而本身的流量畅通,这类做法使其网站性能大大提升。附带的好处是,如果reddit当机了,你没登入的话你或许就发觉不到。

使用队列。投票、评论、缩略图、预查询、垃圾评论处理及纠错等等都放在队列中处理。通过监控队列的长度就可以让你发现问题。附带好处是,使用队列后有些问题对用户会变得透明,像投票要求,即便系统没有即时响应,用户也不会发觉。

将数据放在多个可访问的域中。

避免在1个实例中保存状态。

频繁对EBS硬盘做数据快照。

不要在实例中保存秘钥。亚马逊现在提供实例秘钥服务(instance keys).

按安全策略组分拆功能。

提供API。开发人员可以在你的平台上开发利用。像reddit手机利用,就是由公司外的开发人员通过调用API开发的。

在你自己的社区做1个积极份子。

让用户为你工作。网上用户的输入总是充满欺骗性、无用的、捏造的,但是对reddit,处理这些垃圾信息的大部份工作都由志愿者完成了。这就是reddit能保持小团队却能把工作完成的出奇的好的缘由。

给用户1点点权利,看看他们怎样做,然后把其中的好点子变成网站的功能。比如,当子版块可以定制CSS的时候,他们看到用户在干嘛,和为其他所有用户提供的1些功能。这也使用户在reddit做1些事感到兴奋,由于他们喜欢控制的感觉。还有很多这样的例子。

聆听用户的声音。用户会告知你许多你可能想知道但是又不知道的事情。比如,reddit币最开始就是社区里面的1句玩笑话。现在他们做成了产品,而且用户很喜欢。

注:相干网站建设技能浏览请移步到建站教程频道。

阜新治牛皮癣医院哪家好牛皮癣的易患人群有那些特点宣城正规医院白癜风须要多少钱

相关推荐