https://wendux.github.io/dist/#/doc/flyio/readme
一个支持所有JavaScript运行环境的基于Promise的、支持请求转发、强大的http请求库。可以让您在多个端上尽可能大限度的实现代码复用。其兼容性是它一大优势。
目前Fly.js支持的平台包括:Node.js 、微信小程序 、Weex 、React Native 、Quick App 和浏览器。不过官方文档中已经说明,更多平台正在持续加入,后续肯定会支持更多的平台。
安装方式和普通的js差不多
npm install flyio
<script src="https://unpkg.com/flyio/dist/fly.min.js"></script>
//index.html <script src="https://unpkg.com/flyio/dist/fly.min.js"></script> <script> let fly=new Fly(); fly.get('./data.json').then(res=> { console.log(res); }).catch(function (error) { console.log(error); }); </script> //data.json { "weatherinfo": { "city": "北京", "cityid": "101010100", "temp": "27.9", "WD": "南风", "WS": "小于3级", "SD": "28%", "AP": "1002hPa", "njd": "暂无实况", "WSE": "<3", "time": "17:55", "sm": "2.1", "isRadar": "1", "Radar": "JC_RADAR_AZ9010_JB" } }
查看浏览器返回的结果
fly.get(url, data, options)//option是请求配置项
fly.post(url, data, options)//option是请求配置项
fly.request(url, data, options)//option是请求配置项
{ headers:{}, //http请求头, baseURL:"", //请求基地址 timeout:0,//超时时间,为0时则无超时限制 //是否自动将Content-Type为“application/json”的响应数据转化为JSON对象,默认为true parseJson:true, withCredentials:false //跨域时是否发送cookie }
示例:
//GET请求 fly.request("/user/8" null, {method:"get"}) //DELETE 请求 fly.request("/user/8/delete", null, {method:"delete"}) //PUT请求 fly.request("/user/register", {name:"doris"}, {method:"PUT"})
{ data, //服务器返回的数据 engine, //请求使用的http engine(见下面文档),浏览器中为本次请求的XMLHttpRequest对象 headers, //响应头信息 request //本次响应对应的请求信息 }
fly.put(url, data, options) fly.delete(url,data,options) fly.patch(url,data,options) fly.all([]) fly.spread([])
还有更多用法请直接参考官方文档
官网有更详细的的介绍,大家可以直接参考官网。
flyJS是一个http请求的终极的解决方案,Fly最大的特点就是在混合APP中支持请求转发,而axios不支持,fly采用分层的思想,通过替换底层http engine(Fly中提出了Http Engine的概念)的方式实现各种环境的适配。能够实现很多高级的玩法。
虽然dart可以同时用作客户端和服务器端,但是基本上dart还是用做flutter开发的基本语言而使用的。除了andorid和ios之外,web就是最常见和通用的平台了,dart也提供了对HTML的原生支持,这个支持就是dart:html包。
dart:html提供了对DOM对象的各种有用的操作和对HTML5 API的支持。这样我们可以直接使用dart来操作HTML。
除了DOM之外,dart:html还可以对css进行操作,使用dart:html也非常简单:
import 'dart:html';
对于DOM操作来说,首先是需要找到这个元素。
dart提供了querySelector() 和 querySelectorAll()方法,可以根据ID, class, tag, name或者这些元素的集合来进行查找。
同样都是query方法,两者的不同在于,querySelector只返回找到的第一个元素,而querySelectorAll返回找到的所有元素。
所以querySelector返回的是一个Element,而querySelectorAll返回的是一个集合List。
Element idElement=querySelector('#someId')!;
Element classElement=querySelector('.some-class')!;
List<Element> divElements=querySelectorAll('div');
List<Element> textInputElements=querySelectorAll( 'input[type="text"]',);
List<Element> specialElement=querySelectorAll('#someId div.class');
上面就是我们查找DOM中元素的操作。找到之后,就可以对这些元素进行操作了。
dart使用Element来表示DOM中的元素。对于每个Element来说,都拥有classes, hidden, id, style, 和 title 这些属性。
如果Element中并没有要设置的属性,则可以使用attributes,如下:
elem.attributes['someAttribute']='someValue';
当然对应某些特殊的Element,会有Element对应的子类与之绑定。
比如对于一个a标签来说,如下所示:
<a id="name" href="/name/detail">详情</a>
a标签对应的是dart中的AnchorElement元素。
如果要改变a标签的href值,可以这样:
var anchor=querySelector('#name') as AnchorElement;
anchor.href='http://www.flydean.com';
还可以添加、替换或者删除对应的节点:
querySelector('#id')!.nodes.add(elem);
querySelector('#id')!.replaceWith(elem);
querySelector('#id')?.remove();
上面我们使用了一个特殊的运算符,感叹号,表示的是将一个可为空的类型转换成为不为空的类型。
CSS实际上就是element中的class,当我们获取到element之后,就可以调用他的classes字段,然后对CSS进行处理。
elem.classes返回的是一个list,我们可以向其添加或者删除对应的class。
var name=querySelector('#id')!;
name.classes.add('redline');
有class当然是最好了,class也是我们推荐的写法。但是有时候还是需要直接在element中添加style,如下所示:
name.style
..fontWeight='bold'
..fontSize='3em';
和DOM的交互就是各种事件,向element中添加event,可以使用element.onEvent.listen(function).
比如我们可以添加click事件:
querySelector('#id')!.onClick.listen((e) {
// do something
});
下面是常用的一些event:
change
blur
keyDown
keyUp
mouseDown
mouseUp
以上就是Dart对html的支持。
本文已收录于 http://www.flydean.com/20-dart-html/
最通俗的解读,最深刻的干货,最简洁的教程,众多你不知道的小技巧等你来发现!
欢迎关注我的公众号:「程序那些事」,懂技术,更懂你!
01
—
薪酬wiki百科
和职级对标网站一样,也是由大牛自行设立的职级薪酬数据库,且用且珍惜。【数据来源】广大网友的上传。
-所有数据免费公开
-有职级对标数据
-可视化做得好,方便查看
-互联网大厂(腾讯、头条、阿里)技术岗位薪酬较多
-能管窥对标大厂的一些信息
【劣势】
-非程序员的岗位数据较少
-样本量有待增加,样本增加后有效性会高一点。
-行业有限,主要覆盖的互联网大厂参考价值较大。
-需要手动点开各岗位查看数据。
-国际性公司如谷歌将中国和境外数据混在一起,缺乏可比性
【使用建议】
-个人用户可以作为自己了解市场的依据。
-HR需要做好信息筛查,建议多方交叉比对。
-建议学习该网站的数据可视化,用在自己公司。
02
—
薪情 51salary
【网址】 https://www.51salary.com/
【网站介绍】一个由商业公司开发的薪酬数据库,大部分数据可免费查看,热门数据需要付费。
【数据来源】商业公司自行收集整理。
【数据质量】★★★☆☆样本量不详,数据质量有待观察。
【优势】
-大部分数据免费。
-岗位、行业较为齐全。
【劣势】
-没有职级对标。
-样本量未公开。
-需要手动一个岗位一个岗位看。
-热门岗位要付费。
【使用建议】
-个人用户可以作为自己了解市场的依据。
-HR需要做好信息筛查和参考。
03
—
招聘网站
招聘网站的薪资查询功能【访问路径】以boss为例:boss直聘APP - 我的 - 其他功能 - 薪酬查询
【数据来源】招聘网站大数据。
【数据质量】★★☆☆☆因为数据来自于招聘网站大数据,样本量足够大。但整体数据偏高。
【优势】
-数据免费。
-岗位、行业齐全。
【劣势】
-没有职级对标。
-招聘网站的薪酬数据整体偏高(一方面因为市场上的招聘的人才要比企业内部的自有人才更贵,也就是常说的薪酬倒挂;另一方面有些企业在招聘过程中,提供薪酬区间虚高)。
-需要手动一个岗位一个岗位看。
【使用建议】
-个人用户可以作为自己了解市场的依据。
-HR仅作参考。
04
—
第三方机构免费报告
【网址】
锐仕方达https://www.risfond.com/contentcenter
中智(中智公众号更新更快一点,明细版需要付费)http://www.ciichr.com/nciichr/zyzx96/scrdbg/index.html
科锐https://www.careerintlinc.com/whitepaper.html
【数据来源】乙方公司自行收集。
【数据质量】★★★☆☆因为数据来自于乙方数据库,而乙方多以招聘猎头服务为主,整体数据较市场偏高。
【优势】
-免费数据较多。
-基础的可视化做得还可以。
-主要的行业岗位都有
【劣势】
-没有职级对标
-作为报告专业度不够(毕竟不是专业做薪酬的,免费就别想太多)。
-数据准确性不高,薪酬数据往往比实际偏高(市场上的人才要比企业内部的人才更贵,也就是常说的薪酬倒挂)。
【使用建议】
-个人用户可以作为自己了解市场的依据。
-HR仅作参考,建议多方交叉比对。
05
—
招聘渠道
除了招聘网站本身,用人单位可通过招聘与候选人的沟通获取外部薪酬数据,当然这种方式沟通成本相对较大,但好处在于获取的信息相对全面,可通过面谈了解到薪资水平、薪酬结构及对应绩效考核等,为薪酬诊断提供较为详实的资料。
如果通过猎头招聘,还可以让猎头提供mapping,进一步了解行业不同岗位、职级薪酬水平。
06
—
各地人社局、统计局的工资价位报告
【网站】各地人社局/统计局官网。
【数据来源】每年,各地的人社局或者统计局牵头调查统计的当年工资价位数据。
【数据质量】★★★★☆因为样本量足够大,且覆盖大中小型企业、大多数城市的明细报告中,行业和岗位都非常齐全,整体数据真实性较高。整体薪酬数据要比其他报告更低。因为政府的统计样本更大,样本范围更广,很多商业报告不统计的中小公司也会被放入样本库。
【优势】
-准确度高,政府筛选数据样本量大,避免了样本误差。
-行业齐全,详细报告一般都分十多个门类、几十个大类行业。
-部分地方的报告数据可以精确到岗位,方便做对标分析。
-不仅有中位数,还有高、低分位值多档数据(具体分位值参见当地报告说明),可以做对应岗位简单的薪酬带宽。
-部分城市有特色功能(北京的报告中提供各行业人力成本占销售收入比重)
【劣势】
-没有对标职级(政府做的工资价位数据目的不是对标职级)。
-不同城市的数据详细程度不一样(比如杭州用企业类型分类;上海用行业分类)。
-部分城市没有在网上公开详细数据(上海、北京没有在线上公开详细数据,可以问问社保是否可以领取纸质版)。
【操作建议】
-个人用户可以作为自己了解市场的依据。
-HR需要做好信息筛查与匹配,自行与公司情况进行比对。
-如果当地没有公开明细报告,可以问问社保是否可以领取纸质版报告(社保局内部都有详细报告,一般是纸质版)。
*请认真填写需求信息,我们会在24小时内与您取得联系。