微信扫码登录

其他登录方式

绑定手机号

注册

我同意用户协议

忘记密码

用户协议

绑定手机号

近期有不法分子打着爱盈利的旗号,制作“爱盈利”名称的App,并伪造爱盈利证件,骗取用户信任,以抖音点赞赚钱或其他方式赚钱为名义,过程中以升级会员获得高佣金为名让用户充值。
爱盈利公司郑重声明:我司没有研发或运营过任何名为“爱盈利”的APP,我司做任务赚钱类产品从没有让任何普通用户充值升级会员。我公司产品均在本网站可查询,请将网站拉至底部,点击“关于我们”可查看爱盈利相关产品与服务。
温馨提示:当遇到此类问题请拨打官方电话或添加官方微信,以免财产损失。爱盈利官网地址:www.aiyingli.com。
  • 推广与合作
X

程序员常讲的「直出」是个什么鬼?

来源: 2871
爱盈利(aiyingli.com)移动互联网最具影响力的盈利指导网站。定位于服务移动互联网创业者,移动盈利指导。我们的目标是让盈利目标清晰可见!降低门槛,让缺乏经验、资金有限的个人和团队获得经验和机会,提高热情,激发产品。

「直出」到底是个什么鬼?

程序员常讲的「直出」是个什么鬼?

大家好,果果又来扫盲了。今天要科普的这个技术,叫「直出」。听起来一愣一愣的是吧?这东西,跟「技术」八竿子打不着啊,反而像是某数字网站上的异国语言呢。程序员,你们确定是在上班时间讨论技术问题吗?

哈哈,是的。「直出」其实是「直接输出」的意思,讲的是在浏览器打开某个网页的时候,拿到的数据是服务器「直接输出」的,显示速度特别快,你看到很多「秒开」的网页,八成是用了「直出」的技术。

开玩笑吧,难道还有不是服务器「直接输出」的网页吗?我们先从你点开某个网页的那一刻发生了什么说起。举个例子,假如你点开了手机腾讯网,浏览器首先会通过DNS查到这个网站的真是ip地址,然后向该ip地址发起http协议的请求,请求拉取手机腾讯网的html页面。这时候你的手机和腾讯网的服务器悄悄的进行了数次握手,最终达成一致,服务器开始向你的手机传回html网页。

呼哧呼哧,经过无数个路由器和网关,html网页终于拉取到了。但是别高兴的太早,这个时候浏览器还不能显示出这个网页,原因是网页上还有很多CSS资源(用来美化网页的,控制字体啊、颜色之类的,没有CSS的手机腾讯网长下面这个样子)需要拉取。于是浏览器找到写在html网页里的CSS资源地址,再次向服务器发起http协议。

程序员常讲的「直出」是个什么鬼?

呼哧呼哧,CSS资源拉回来了。但是浏览器一看,咦,还有javascript代码落下了呢,于是又去网站上拉取javascript代码。老套路,握手、协商、传数据。为什么必须要拉取javascript代码呢?原来,现在有很多网站,数据都是异步加载的,就像很多APP那样,先显示一个架子(由html描述),然后后台请求数据(由javascript发起),数据拿到了再贴上去,渲染出来。美其名曰用户体验,其实用户该等还是得等。

于是浏览器又呼哧呼哧跑去拉去真正的数据了。

于是当用户真正看到完整的网页的时候,时间已经过去好几秒了。等的时间越长,用户越容易流失。后来程序员想了个办法,那就是「直出」。

如果浏览器第一次请求html网页的时候,拿到的就是带有「经过javascript渲染好的数据」的html,那岂不是省去了拉取javascript、拉取数据的过程?虽然需要传输的数据量并没有减少(实际上省去了每次http请求的额外信息),但是最关键的是减少了http请求的次数,减少了浏览器与服务器之间握手、协商的次数,成了一锤子买卖。

没错,这就是「浏览器直接输出渲染好数据的html页面」,简称「直出」。直出没什么神秘的,只不过需要node.js的支持。我们之前讲过node.js,就是服务器和前端一样,也用javascript编写,相当于在服务器上也跑一个浏览器,服务器上的浏览器渲染好的东西,直接输出给客户端的浏览器,那速度肯定快。

简单来说,就好比你从某东上买电脑,先买了个主板,然后买了个CPU,然后买了个显示器,等把东西买全准备自己组装,发现运费花了好几百。后来你终于想通了,一拍脑袋,直接把配件都选好,让店家帮忙组装起,一次性发过来,多省事啊。「直出」就是这个道理。

#专栏作家#

给产品经理讲技术,微信公众号(pm_teacher),人人都是产品经理专栏作家。资深程序猿,专注客户端开发若干年,对前端、后台技术略懂,热衷于对新的科技领域的探索。

本文原创发布于人人都是产品经理。未经许可,禁止转载。

题图来自PEXELS,基于CC0协议

爱盈利-运营小咖秀 始终坚持研究分享移动互联网App运营推广经验、策略、全案、渠道等纯干货知识内容;是广大App运营从业者的知识启蒙、成长指导、进阶学习的集聚平台;

评论

相关文章推荐

SELECT dw_posts.ID,dw_posts.post_title,dw_posts.post_content FROM dw_posts INNER JOIN dw_term_relationships ON (dw_posts.ID = dw_term_relationships.object_id) WHERE 1=1 AND(dw_term_relationships.term_taxonomy_id = 3083 ) AND dw_posts.post_type = 'post' AND (dw_posts.post_status = 'publish') GROUP BY dw_posts.ID ORDER BY RAND() LIMIT 0, 6

京ICP备15063977号-2 © 2012-2018 aiyingli.com. All Rights Reserved. 京公网安备 11010102003938号