摘要:語(yǔ)法不兼容語(yǔ)法,會(huì)產(chǎn)生一些不可預(yù)知的。經(jīng)過(guò)商量,服務(wù)器對(duì)接收到的數(shù)據(jù)進(jìn)行去重,且后續(xù)時(shí)間以服務(wù)器時(shí)間為準(zhǔn)。的數(shù)據(jù)存儲(chǔ)速度有待懷疑。
1、ES6語(yǔ)法不兼容for of語(yǔ)法,會(huì)產(chǎn)生一些不可預(yù)知的bug。
2、從服務(wù)器獲取到的配置文件XXX.bytes,直接根據(jù)pb文件解析即可,千萬(wàn)不要進(jìn)行json解析,否則pb里的枚舉值就會(huì)被轉(zhuǎn)成字符串,導(dǎo)致獲取不到預(yù)想的結(jié)果。
3、做本地緩存的時(shí)候,react-native提供的AsyncStoreage只能存儲(chǔ)字符串,所以存入緩存之前數(shù)據(jù)都要進(jìn)行json序列化,但是當(dāng)從緩存中取出數(shù)據(jù),進(jìn)行json解析,加入緩存之前的對(duì)象的一些默認(rèn)(例如:boolean類型)值,都變成undefined了,會(huì)影響原有的判斷邏輯,需要對(duì)數(shù)據(jù)進(jìn)行邏輯判斷的補(bǔ)充。
4、在開發(fā)中肯定會(huì)遇到需要獲取時(shí)間戳的問(wèn)題,React-native中獲取的時(shí)間戳是毫秒為單位,而且后面還有幾位小數(shù),打印了幾條數(shù)據(jù)觀察,發(fā)現(xiàn)都是1位小數(shù),毫秒到的秒的轉(zhuǎn)換,需要再除以1000,于是就按4位小數(shù)進(jìn)行截取,let timeStamp = timeStamp.substring(0, timeStamp.length - 4);,但是在后來(lái)的程序運(yùn)行中同事發(fā)現(xiàn),有的時(shí)候,后面會(huì)有沒(méi)有小數(shù)的情況,結(jié)果截取到的時(shí)間戳就少了一位,結(jié)果就出錯(cuò)了。于是他把獲取時(shí)間戳的代碼修改如:let timeStamp = Math.floor(new Date().getTime() / 1000).toString();,這樣獲取到的就是時(shí)間戳的整數(shù)部分了,且是用秒為單位的。
5、react-native中的text組件,如果不設(shè)置寬度的話,默認(rèn)是父組件的寬度,顯示不下才會(huì)進(jìn)行換行,開發(fā)中遇到遇到兩種情況:一個(gè)image & text 采用橫向布局,如果不設(shè)置text的寬度的話,超過(guò)父組件的寬度,右側(cè)的文本會(huì)有丟失的情況;一個(gè)text & image 采用橫向布局,如果不設(shè)置text的寬度的話,text會(huì)默認(rèn)占用父組件的全部寬度,結(jié)果右側(cè)的image被擠到了父組件之外。
6、數(shù)據(jù)埋點(diǎn)遇到的坑點(diǎn):由于服務(wù)器和客戶端不在同一個(gè)時(shí)區(qū),服務(wù)器接收到打點(diǎn)數(shù)據(jù),因?yàn)闀r(shí)間差的原因,對(duì)客戶端上報(bào)的一條數(shù)據(jù)進(jìn)行了多次入庫(kù),導(dǎo)致數(shù)據(jù)量異常。經(jīng)過(guò)商量,服務(wù)器對(duì)接收到的數(shù)據(jù)進(jìn)行去重,且后續(xù)時(shí)間以服務(wù)器時(shí)間為準(zhǔn)。
7、AsyncStoreage的數(shù)據(jù)存儲(chǔ)速度有待懷疑。在性能調(diào)優(yōu)的時(shí)候發(fā)現(xiàn),一些方法的執(zhí)行,快的是1毫秒,大部分的發(fā)放執(zhí)行在40毫秒左右,到了賬號(hào)信息存儲(chǔ)的時(shí)候,就執(zhí)行了一個(gè)AsyncStorage.multiSet方法,其中是5條數(shù)據(jù),耗時(shí)一下就變成了800毫秒左右。截圖如下:
上面這個(gè)方法的執(zhí)行耗時(shí)是783毫秒,所以對(duì)于這里的信息存儲(chǔ),還是有很大的提升空間的。
AsyncStoreage給我們?cè)陂_發(fā)中提供了一些數(shù)據(jù)存儲(chǔ)的便利,但是只適合于存儲(chǔ)少量數(shù)據(jù),且對(duì)耗時(shí)感知不是很強(qiáng)的場(chǎng)景,對(duì)于登錄和注冊(cè)這種關(guān)鍵性步驟,AsyncStoreage的性能還有有欠缺的。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/100327.html
摘要:閉上眼睛,心中默念一百遍遍馬力馬力轟,再睜開眼,如果你是安卓及以上系統(tǒng),你就能在你手機(jī)上看到你第一個(gè)應(yīng)用了圖,如果是以下,嘿嘿,一個(gè)血紅血紅的界面,不過(guò)沒(méi)關(guān)系,我們來(lái)糾正它。 ????????前期準(zhǔn)備工作已經(jīng)完成,接下來(lái)將正式進(jìn)入開發(fā)了,請(qǐng)深呼吸下,呵呵。我們首先寫個(gè)Hello World工程來(lái)練練手。????????在命令行上點(diǎn)右鍵,選擇以管理員身份運(yùn)行。建議每次運(yùn)行命令行的時(shí)候都用...
摘要:此時(shí)會(huì)把當(dāng)前路徑作為一個(gè)本地,在全局路徑下創(chuàng)建一個(gè)軟鏈接。所有依賴于全局路徑下的都必須是一個(gè)版本的,并沒(méi)有提供多版本號(hào)依賴的解決方法。因此,還是建議選擇一個(gè)常用的版本安裝在全局路徑,個(gè)別需求其他版本號(hào)的的項(xiàng)目,使用來(lái)配置局部依賴。 在實(shí)際開發(fā)過(guò)程中,經(jīng)常需要同時(shí)運(yùn)行和修改多個(gè)React Native工程,比如運(yùn)行g(shù)ithub上的開源項(xiàng)目以觀察某種控件的實(shí)際效果。那么此時(shí),各項(xiàng)目下的初始...
閱讀 4380·2021-11-24 10:24
閱讀 1414·2021-11-22 15:22
閱讀 2044·2021-11-17 09:33
閱讀 2451·2021-09-22 15:29
閱讀 523·2019-08-30 15:55
閱讀 1662·2019-08-29 18:42
閱讀 2740·2019-08-29 12:55
閱讀 1780·2019-08-26 13:55