环亚娱乐ag88登录

前言

最近部门在招前端,作为部门唯一的前端,面试了不少应聘的同学,面试中有一个涉及 Promise 的一个问题是:

网页中预加载20张图片资源,分步加载,一次加载10张,两次完成,怎么控制图片请求的并发,怎样感知当前异步请求是否已完成?

然而能全部答上的很少,能够给出一个回调 + 计数版本的,我都觉得合格了。那么接下来就一起来学习总结一下基于 Promise 来处理异步的三种方法。

本文的例子是一个极度简化的一个漫画阅读器,用4张漫画图的加载来介绍异步处理不同方式的实现和差异,以下是 HTML 代码:







Promise


正在加载…



单一请求

最简单的,就是将异步一个个来处理,转为一个类似同步的方式来处理。 先来简单的实现一个单个 Image 来加载的 thenable 函数和一个处理函数返回结果的函数。

function loadImg (url) {
return new Promise((resolve, reject) => {
const img = new Image()
img.onload = function () {
resolve(img)
}
img.onerror = reject
img.src = url
})
}

异步转同步的解决思想是:当第一个 loadImg(urls[1]) 完成后再调用 loadImg(urls[2]),依次往下。如果 loadImg() 是一个同步函数,那么很自然的想到用__循环__。

for (let i = 0; i < urls.length; i++) { loadImg(urls[i]) } 当 loadImg() 为异步时,我们就只能用 Promise chain 来实现,最终形成这种方式的调用: loadImg(urls[0]) .then(addToHtml) .then(()=>loadImg(urls[1]))
.then(addToHtml)
//…
.then(()=>loadImg(urls[3]))
.then(addToHtml)

那我们用一个中间变量来存储当前的 promise ,就像链表的游标一样,改过后的 for 循环代码如下:

let promise = Promise.resolve()
for (let i = 0; i < urls.length; i++) { promise = promise .then(()=>loadImg(urls[i]))
.then(addToHtml)
}

promise 变量就像是一个迭代器,不断指向最新的返回的 Promise,那我们就进一步使用 reduce 来简化代码。

urls.reduce((promise, url) => {
return promise 环亚娱乐ag88登录
.then(()=>loadImg(url)) 环亚娱乐ag88登录
.then(addToHtml)
}, Promise.resolve())

在程序设计中,是可以通过函数的__递归__来实现循环语句的。所以我们将上面的代码改成__递归 环亚娱乐ag88登录__:

function syncLoad (index) {
if (index >= urls.length) return
loadImg(urls[index]).then(img => {
// process img
addToHtml(img)
syncLoad (index + 1)
})
}

// 调用
syncLoad(0)

好了一个简单的异步转同步的实现方式就已经完成,我们来测试一下。 这个实现的简单版本已经实现没问题,但是最上面的正在加载还在,那我们怎么在函数外部知道这个递归的结束,并隐藏掉这个 DOM 呢?Promise.then() 同样返回的是 thenable 函数 我们只需要在 syncLoad 内部传递这条 Promise 链,直到最后的函数返回。

二、什么是环亚娱乐ag88登录?

一、什么是结构化数据工具?

二、什么是环亚娱乐ag88登录?

三、目前已开放哪些数据格式提交?

四、提交的结构化数据都会展现结构化摘要吗?

五、创建Sitemap时有哪些注意事项?

一、什么是结构化数据工具?

结构化数据工具是百度引入优质结构化数据的入口,现在互联网中的资源类型越来越多,内容越来越丰富,为了给用户展示更丰富的搜索结果,同时给予网站内容更合适的展现,提高搜索结果的点击率,我们推出了结构化数据工具。

二、什么是开放数据格式提交?

有sitemap提交权限的站长,可以根据自己网站类型,选择相应类目的数据格式,向百度提交网站内容的结构化数据。

三、目前已开放哪些格式?

已支持四类结构化数据提交:通用问答、在线文档、资料下载、软件下载,后续会开放更多类别。

1、通用问答,适合有问答类页面的网站提交数据,展现样式:

rdf_questionpost.png

2、在线文档,适合有文档在线阅读页的网站提交数据,展现样式:

rdf_onlinedocument.png

3、资料下载,适合有资料下载页的网站提交数据,展现样式:

rdf_filedownloadpage.png

4、软件下载,适合有软件下载页的网站提交数据,展现样式:

rdf_softwareapplication.png

四、提交的结构化数据都会展现结构化摘要吗?

百度对已提交的结构化数据,不保证一定会展现。展现结构化摘要的条件包括但不限于:

1、结构化字段表述准确,符合规范。

2、结构化字段内容与页面相应内容一致。

3、页面内容质量高,如问答页,答案需有助于提问者解决疑问。

4、url已被百度收录。

六、创建Sitemap文件时有哪些注意事项?

见sitemap工具帮助

谢邀。结合连续创业者、 环亚娱乐ag88登录 

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

谢邀。结合连续创业者、 环亚娱乐ag88登录  唱吧app创始人陈华的演讲,整理出这篇文章,供大家参考。

在全球的App Store的各个类目免费榜前20的产品中,挑选具有以下特征的产品:

1、目标市场规模巨大,例如会有几千万、几亿人使用;

2、该方向的目标市场(例如中国大陆)尚未有巨头;

3、在这个方向上,团队能做出令人耳目一新的产品形态,超越已有产品。

比如:

(1)强工具(只是第一步,容易被巨头赶超):团队有能力使得产品更能满足新一代用户的需求,比如“爱美、怕死、缺爱”的“爱美”需求,美图秀秀app、有声音美化功能的唱吧app、有画面美化功能的主播专用摄像头,都很好地进行了需求满足;

(2)强社交(产品可持续性的关键):市面上的产品被当作工具使用,而团队有能力将工具做成有黏性的社交产品,比如添加攀比功能(机器对比+人工打榜)、即时通讯功能、朋友圈互评功能、陌生人路转粉功能;

4、产品自身有口碑传播能力,即用户愿意推荐给身边的朋友使用;

5、商业模式上,团队有2B或2C的收费能力;

罗列出挑选的方向,有新的想法就添加进列表,每周都进行讨论,筛掉不合适的方向,几周下来,一直停留在清单上的方向,值得去尝试。

世界上有一些痛点,已经被人家挖掘出来,但是又没有挖掘那么深,那就抓住这个痛点,加入这个年代的投资创业大潮。

——————————–

朋友完全不是做技术和学网络的,做个人站长九年

 坑。

朋友完全不是做技术和学网络的,做个人站长九年,收入从最早卖了一个网站赚了300块开始,用了两年慢慢稳定兼职赚三四千,然后辞职全力搞个站,现在年入百万,养家,买房,带小孩,一人搞定(他老婆上班一个月三四千,说是为了不脱离社会。。。。。)。我就想要这样的生活。

之前一直有这个想法和他一起做站,但一来,不知道他到底有多赚,二来,对自己的收入也还能接受,三来,对技术有畏惧感。

但最近一两年,实体经济越来越差,相反,他的收入还在稳步增加。个人职业发展,看不到什么上升的空间了(也许是我本身没上进心,但我有赚钱的欲望)。又开始萌生了这一想法。

去年炒域名跟着他赚了一笔小钱(保守),但也没什么技术含量,所以也就是混着赚个年终奖吧。去年域名暴跌,今年一大把的垃圾域名,然后他组织那些亏钱的米农,将这些域名做垃圾站群,硬生生的生成了大把垃圾流量,赚了一笔,我也跟着又赚了个年终奖。

感受了到互联网赚钱的魅力,也体会到了做网站的艰辛不易。但是和做其它的创业项目来说,做站长对我来说,无疑是成本最小,成功率最高的。

一,最大的依仗,有朋友带着走。这样我先不说自己能做成什么样,但至少不会走错路,能在一条正确的路上前行。打个比方,在西北荒漠里,完全没有路,但我朋友能给我指一条正确的方向,他开了个豪华越野,路上的坑坑洼洼对他来说完全不是事,但有他的指点,就算一路磕磕绊绊,但只要我坚持,我也能慢慢走到目的地。

二,网站的资金投入无疑是非常小的,一个域名,几十块一年,服务器是最大头的开销,但是一般的网站一年几百块也能搞定,做熟悉了之后,可以按需要再租好的服务器,那也不过是几千一年。等到你网站真能带来收益的时候,这个钱也是微不足道的。而相反,做实体,做贸易,一开始就得准备投入几万,十几万。万一亏损,网站最多亏几千块,实体,就不知道亏多少了。

三,时间精力投入。做网站完全可以用业余时间兼职做,这样我不用考虑辞职放弃养家糊口的收入,只要多花时间精力就行。如果做实业,不全职去做,可能是赔了金钱又损失时间。

四,做网站的程序都是开源的,现在的CMS已经可以让人比较容易做成自己想要的网站(吐槽一下,所谓的简单易用也是针对有经验有基础的人,至少我现在还是感觉像是看天书)。做网站,技术不是最难的地方,做成什么样,才是要考虑的。

五,毕竟工作这么久了,也有一定的资源人脉。做网站,无非是获取流量,再将流量变现。这个过程有很多方法实现。也许可以和现实中的资源搭配。这个和做实业也没什么区别。

不管怎样,在赚钱的欲望和朋友的成功案例刺激和带领下。我这个对网络技术一无所知的小白,下定决定,也要去网络淘金了。