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小時內與您取得聯系。