整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

开源跨平台的http请求解决方案-Fly.js

开源跨平台的http请求解决方案-Fly.js

网介绍

https://wendux.github.io/dist/#/doc/flyio/readme

一个支持所有JavaScript运行环境的基于Promise的、支持请求转发、强大的http请求库。可以让您在多个端上尽可能大限度的实现代码复用。其兼容性是它一大优势。

浏览器兼容性

其它平台

目前Fly.js支持的平台包括:Node.js 、微信小程序 、Weex 、React Native 、Quick App 和浏览器。不过官方文档中已经说明,更多平台正在持续加入,后续肯定会支持更多的平台。

安装和使用

安装方式和普通的js差不多

  • npm包安装
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"
 }
}

查看浏览器返回的结果

使用

  • get请求
fly.get(url, data, options)//option是请求配置项
  • post请求
fly.post(url, data, options)//option是请求配置项
  • request
fly.request(url, data, options)//option是请求配置项
  • request结构对象
{
 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"})
  • response对象结构
{
 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([])

还有更多用法请直接参考官方文档

对比axios和fetch

官网有更详细的的介绍,大家可以直接参考官网。

备注

  • fly不支持jsonp
  • fly只能设置并维护一个拦截器
  • 可以清除拦截器
  • 不支持请求取消
  • 支持请求重定向

总结

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操作

对于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操作

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百科


我把大佬创立的、由网友编辑形成的网站都称之为薪资wiki百科。

这里主要有

(1)【网址】 https://duibiao.info/

这是一个在美国湾区的大佬创立的职级对标网站,上面有各家公司的职级和对应薪酬区间。对于在职级薪资方面对标大厂的公司,可做参考。使用定位偏向程序员们而不是HR。

(2)【网址】https://salaryfly.com/

和职级对标网站一样,也是由大牛自行设立的职级薪酬数据库,且用且珍惜。【数据来源】广大网友的上传。

(3)【网址】https://puwangwang8.com/

数据来源也同样来自广大网友的上传。

【优势】

-所有数据免费公开

-有职级对标数据

-可视化做得好,方便查看

-互联网大厂(腾讯、头条、阿里)技术岗位薪酬较多

-能管窥对标大厂的一些信息

【劣势】

-非程序员的岗位数据较少

-样本量有待增加,样本增加后有效性会高一点。

-行业有限,主要覆盖的互联网大厂参考价值较大。

-需要手动点开各岗位查看数据。

-国际性公司如谷歌将中国和境外数据混在一起,缺乏可比性

【使用建议】

-个人用户可以作为自己了解市场的依据。

-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需要做好信息筛查与匹配,自行与公司情况进行比对。

-如果当地没有公开明细报告,可以问问社保是否可以领取纸质版报告(社保局内部都有详细报告,一般是纸质版)。