APP中緩存汗菜、加載與刷新機(jī)制設(shè)計(jì)【轉(zhuǎn)載】


一让禀、緩存機(jī)制

1、為什么要加緩存陨界?

場景一:【等待】巡揍,在向服務(wù)器請求新的數(shù)據(jù)時。我們讓用戶看到什么菌瘪?第一種是漂亮的等待加載頁面腮敌;第二種是緩存的內(nèi)容阱当。對于第二種,用戶可以對頁面進(jìn)行操作糜工,等待新數(shù)據(jù)時可以查看舊數(shù)據(jù)弊添,更具有“可操作性”與“可用性”,從而減輕了從服務(wù)器獲取數(shù)據(jù)這一動作的大小和時間長短捌木,增強(qiáng)了用戶體驗(yàn)油坝。另一方面,如果內(nèi)容更新的間隔較長或者用戶刷新的間隔較短刨裆,在沒有緩存的情況下澈圈,很多數(shù)據(jù)我們會多次重復(fù)的向服務(wù)器獲取,增加了成本帆啃。

場景二:【結(jié)果】沒有聯(lián)網(wǎng)瞬女,或者在地鐵上網(wǎng)絡(luò)太差無法加載數(shù)據(jù)時,如果留給用戶一個空白頁面链瓦,實(shí)在是感覺有點(diǎn)不負(fù)責(zé)任啊拆魏。并且很多功能在沒有聯(lián)網(wǎng)的情況下也有使用的可能性,比如:APP中的通訊錄慈俯,查看一些聊天記錄渤刃,通知信息,文章列表等贴膘。因?yàn)橛脩舸蜷_APP不一定是要看新信息卖子,說不定是回顧老信息(或許老信息里也有用戶之前沒看的),所以恰當(dāng)?shù)木彺婵梢詽M足更多的用戶場景刑峡。

場景三:【金錢】有一天洋闽,一個用戶發(fā)現(xiàn)自己裝了某個APP后流量用的特別快,Ta可能永遠(yuǎn)將這個APP打入冷宮了突梦,而增加緩存正是節(jié)省流量的一個方法诫舅。雖然節(jié)省的不多或者用戶也察覺不到,但是作為一個有態(tài)度的產(chǎn)品經(jīng)理宫患,應(yīng)該多做一些思考刊懈。

2、什么是緩存娃闲?

緩存可分為如下幾類:

(1)app緩存虚汛。

(2)固定緩存。

(3)可手動清理的緩存皇帮。

(4)不可手動清理的緩存卷哩。

(5)臨時緩存。



其中属拾,臨時緩存常用于一個功能頁面內(nèi)将谊,保存各欄目的緩存冷溶。同一個功能里會把子功能分為多個欄目進(jìn)行劃分,每個標(biāo)簽欄目下的內(nèi)容在本次使用中都可保存為臨時緩存瓢娜,在該功能里切換欄目挂洛,不需要重新加載數(shù)據(jù),使用緩存顯示眠砾。

對于用戶來說虏劲,使用時達(dá)到了無縫切換瀏覽,對于服務(wù)器來說褒颈,在短時間內(nèi)數(shù)據(jù)很少會有更新柒巫,所以在一般情況下能滿足用戶的正常需求,并達(dá)到體驗(yàn)優(yōu)秀谷丸。

臨時緩存的清理機(jī)制是:退出該功能模塊就清除之前的緩存堡掏。也就是說下次進(jìn)入該功能模塊,需要重新獲取一次數(shù)據(jù)刨疼。

很多時候我們都會用到臨時緩存泉唁,因?yàn)槟切┬畔⒄娴牟皇悄敲粗匾也恍枰?jīng)常反復(fù)查看揩慕,那對于那些我們經(jīng)常使用而且經(jīng)常需要反復(fù)查看的信息亭畜,馬海祥建議采取固定緩存,保存在本地迎卤,方便下次翻閱時不需要再一次向服務(wù)器請求數(shù)據(jù)了拴鸵。

對于固定緩存又會細(xì)分為可手動清理的緩存和不可手動清理的緩存。

第一種是我們最常見的緩存蜗搔,幾乎所有產(chǎn)品都采用這種緩存方式劲藐。平時用戶瀏覽文章、圖集加載的數(shù)據(jù)就以這種形式緩存在本地樟凄,下次看回這篇文章聘芜、圖集時就不需要加載了。用戶也可以手動把這些緩存清理了缝龄,釋放空間厉膀。

而對于某些特殊場景,例如一些相對固定的數(shù)據(jù)二拐,我們不愿意一開始就打包進(jìn)App里,這樣會占太大容量凳兵,造成產(chǎn)品包很大百新,也不愿意每次進(jìn)入頁面都向服務(wù)器加載這些信息,那怎么辦庐扫?建議的解決方法就是我們可以只加載一次就永遠(yuǎn)存在本地了饭望,這樣安裝包也不會大仗哨,以后也不用加載了。

3铅辞、如何清理緩存厌漂?

一般App都會在“設(shè)置”里提供一個清理緩存的功能,一鍵把空間釋放斟珊。除此之外苇倡,App最好要設(shè)計(jì)自動清理機(jī)制,可以通過兩個維度來設(shè)計(jì)這個機(jī)制囤踩。

(1)旨椒、時間

通過設(shè)定一個固定的時間,或者根據(jù)用戶使用周期靈活設(shè)定時間來清理緩存堵漱。每個產(chǎn)品的場景不一综慎,用戶使用頻率不一,設(shè)定這個機(jī)制的時候就需要結(jié)合實(shí)際情況考慮了勤庐。

(2)示惊、容量

一般是設(shè)定一個容量上限,采用堆棧的設(shè)計(jì)原理進(jìn)行緩存清理愉镰,溢出堆棧的舊數(shù)據(jù)將自動清除米罚。

二、加載機(jī)制

1岛杀、頁面加載

方案1:單頁面整體加載

這種加載比較簡單阔拳,一般運(yùn)用在頁面內(nèi)容比較單一的情況下,所以直接一次性加載完所有數(shù)據(jù)后再顯示內(nèi)容类嗤。其單頁面加載失敗的狀態(tài)相對來說也比較好處理宠进。

方案2:單頁面分塊加載

這種方案的特點(diǎn)是,能讓用戶逐步看到內(nèi)容才避,在這個漸進(jìn)的過程中降低用戶的焦慮心理迎吵。

其中又可以分為,模塊間有關(guān)聯(lián)性的精偿,先加載父內(nèi)容弧圆,再加載子內(nèi)容。如優(yōu)酷笔咽,先把欄目加載出來搔预,再加載各欄目的內(nèi)容。

模塊間沒有絕對關(guān)聯(lián)性的叶组,可獨(dú)自加載各自模塊內(nèi)容拯田,根據(jù)請求的速度不同分別顯示。這樣處理有一定幾率讓用戶在沒完全刷出數(shù)據(jù)的情況下就能找到自己需要的功能甩十,如大眾點(diǎn)評船庇、淘寶客戶端等吭产。

框架固定,內(nèi)容更新的鸭轮,可先把框架顯示出來臣淤,再把各模塊的數(shù)據(jù)各自加載顯示,如各種iOS自帶應(yīng)用窃爷。

這種分模塊加載的需要特別注意加載失敗的狀態(tài)邑蒋,畢竟每個模塊都提示加載失敗,點(diǎn)擊重試是很挫的一件事吞鸭,可以根據(jù)信息的優(yōu)先級來決定哪些數(shù)據(jù)失敗了采用默認(rèn)狀態(tài)寺董,哪些數(shù)據(jù)采用失敗提示。

方案3:跨頁面加載

父頁面&子頁面 or 同一app內(nèi)刻剥,頁面間字段可以復(fù)用的遮咖,在加載子頁面時不需要重新加載新數(shù)據(jù)。

方案4:預(yù)加載

這種加載方式的特點(diǎn)是造虏,在加載一個頁面內(nèi)容的同時御吞,預(yù)測用戶的下一步行為,并為他下一步需要使用的頁面加載內(nèi)容漓藕,使得他在下一步的操作中能立刻獲取信息而不需要加載等待陶珠。

預(yù)加載提供給用戶無縫的產(chǎn)品使用體驗(yàn),使得用戶在使用產(chǎn)品的過程中更直接流暢享钞,沒有被打斷的感覺揍诽。

具體的例子有:

在瀏覽圖集的時候,當(dāng)看到第一張的圖片時栗竖,就自動后臺加載第二第三第四張圖片暑脆,用戶瀏覽完第一張圖片切換到第二張時就不會有加載等待的過程。

在瀏覽新聞列表時狐肢,就把每篇新聞的內(nèi)容在后臺進(jìn)行預(yù)加載添吗,用戶選擇看某篇新聞時,能立刻閱讀到內(nèi)容份名。

但是這種方案也需要面臨很多的問題碟联,馬海祥覺得最直接的就是流量問題,因?yàn)闀詣优艿艉芏嘤脩艨赡芨居貌簧系臄?shù)據(jù)流量僵腺,所以鲤孵,一般情況下馬海祥建議可以設(shè)定在wifi環(huán)境才采用這種加載模式。又或者設(shè)定加載規(guī)則辰如,只把主要內(nèi)容預(yù)加載普监,而部分次要內(nèi)容可以在用戶真的用到的時候才加載,例如預(yù)加載新聞?wù)牡那闆r,可以只加載文本信息鹰椒,圖片信息等到用戶進(jìn)入內(nèi)頁才加載。這種預(yù)加載與分塊加載結(jié)合的方式也普遍運(yùn)用在各個場景呕童。

另外漆际,預(yù)加載也需要時間的,他只是不在客戶端顯示給用戶夺饲,默默在后臺運(yùn)作而已奸汇,需要特殊考慮未加載完用戶就使用到那些信息的情況,所以在做預(yù)加載設(shè)計(jì)時需要同時考慮另一種適合該情況的普通加載方式往声。

預(yù)加載需要根據(jù)具體的場景來進(jìn)行設(shè)計(jì)擂找,設(shè)定好信息優(yōu)先級,綜合考慮各種類型信息的具體大小流量浩销,整體考慮預(yù)加載的方式贯涎,這些都是需要經(jīng)過精心分析思考的。

隨著網(wǎng)絡(luò)環(huán)境的發(fā)展慢洋,預(yù)加載將成為以后產(chǎn)品普遍的加載方式塘雳,他提供給用戶的無縫使用體驗(yàn)**地提升了產(chǎn)品的可用性。

2普筹、操作加載

除了頁面的信息需要加載败明,頁面內(nèi)的操作也是需要通過給服務(wù)器發(fā)送請求記錄的。

方案1:加載層

進(jìn)行一個操作后太防,彈出模態(tài)的提示層妻顶,告知用戶正在加載。采用模態(tài)的提示主要是防止用戶在該過程中進(jìn)行其他操作蜒车,導(dǎo)致當(dāng)前加載出錯讳嘱。由于采用模態(tài)的提示,并且有可能因?yàn)榫W(wǎng)絡(luò)原因?qū)е麻L時間處于加載狀態(tài)醇王,建議提供一個“關(guān)閉”的操作呢燥,中止本次加載,恢復(fù)App可用狀態(tài)寓娩。加載失敗時可在當(dāng)前浮層變換為失敗提示叛氨。模態(tài)提示層是最穩(wěn)妥的方式,但他會使用戶在使用過程中有打斷的感覺棘伴。

方案2:控件自身加載狀態(tài)

這種方式是把操作加載的狀態(tài)與控件的樣式結(jié)合起來了寞埠,對某個控件進(jìn)行操作后,控件變換為加載狀態(tài)焊夸,此時控件不能重復(fù)操作仁连。由于這種加載方式是控件的自身狀態(tài),不影響其他操作,所以用戶也可以對頁面進(jìn)行其他操作饭冬,可能會導(dǎo)致同時有多個請求的情況使鹅,增加了加載失敗的風(fēng)險,這也算是這種方式的弊端昌抠,不過這種極端情況很少出現(xiàn)患朱。請求失敗后,可配合Toast提示告知用戶失敗的原因炊苫。

方案3:后臺加載

用戶在操作后裁厅,客戶端立刻反饋操作成功,然后把請求放到后臺與服務(wù)器交互侨艾,這一過程用戶不需要了解执虹,不需要等待,在正常情況**驗(yàn)是非常棒的唠梨。

但是在極端情況下會出現(xiàn)一些莫名其妙的狀況袋励,由于是后臺記錄請求并與服務(wù)器交互,所以實(shí)際請求是否成功客戶端是不說明的姻成,全部以操作成功來顯示插龄,這就會導(dǎo)致用戶誤以為操作成功了,但實(shí)際上下次來看發(fā)現(xiàn)沒有成功科展。

所以均牢,這種加載方式是需要根據(jù)具體使用場景來權(quán)衡使用的,對于一些重要的操作才睹,建議還是使用模態(tài)的方式加載徘跪,對于一些小操作,如點(diǎn)贊琅攘、訂閱垮庐、關(guān)注,可采用后臺加載的方式坞琴。

3哨查、下一頁加載還是當(dāng)前也加載

用戶進(jìn)入首頁,正式邁出體驗(yàn)的第一步剧辐,接下來迎接的就是基于用戶目標(biāo)的界面間跳轉(zhuǎn)寒亥。完成界面的跳轉(zhuǎn),會有各種加載策略荧关,但無論形式如何溉奕,我們都可以將其歸為兩大類:“下一頁加載”、“當(dāng)前頁加載”忍啤。

(1)“下一頁加載”滿足了用戶提前窺視的需求

我們把頁面看成“點(diǎn)”加勤,頁面流是連接這些點(diǎn)的“線”,我們以“用戶想買一條牛仔褲”這一場景作為案例做了簡單的眼動研究,從應(yīng)用啟動到商品瀏覽再到商品確定最后進(jìn)入下單頁鳄梅,用戶所呈現(xiàn)的瞳孔梯次增大叠国,即E>D>C>B>A,為了解釋這一現(xiàn)象戴尸,通過與被試交流煎饼,我們發(fā)現(xiàn)相比于各種瀏覽,用戶更期待看到他們想看到的東西校赤。因此此時的”下一頁加載“正好,滿足了用戶提前窺視的需求筒溃。

(2) Wait马篮!I Need Think Think

我們以同樣的方式又對“使用支付寶對手機(jī)充值”這一場景做了研究,從開始支付到二次確認(rèn)支付怜奖,用戶所呈現(xiàn)的瞳孔都比較大浑测,即A與B近似相等,通過訪談歪玲,我們發(fā)現(xiàn)與“遞增體驗(yàn)流”不同的是迁央,當(dāng)用戶遇到判斷邏輯的界面時,用戶并非急于想看下一頁面到底包含怎樣的內(nèi)容滥崩,而是非0即1的驗(yàn)證心態(tài)岖圈,即我的操作效成功了嗎?因此在判斷邏輯界面中钙皮,用戶的內(nèi)容窺視需求并不強(qiáng)蜂科,當(dāng)然也沒什么內(nèi)容,要么僅是一個小小的Toast短条,再大一點(diǎn)就是一個簡單的信息反饋界面(意味著“下一頁加載”在這里就是個雞肋)导匣,用戶反而對非0即1的驗(yàn)證需求較為強(qiáng)烈,其中還伴隨著等待結(jié)果過程中的緊張感茸时、激動感贡定,因此界面通過當(dāng)前頁加載表明系統(tǒng)正在努力地處理用戶交代的指令**了用戶的緊張感、激動感可都,直到結(jié)果顯現(xiàn)——“處理成功”缓待,完成了非0即1驗(yàn)證的滿足感。


4汹粤、先加載還是先展示

當(dāng)需加載的是功能時命斧,可以先展示再加載,當(dāng)需加載的是內(nèi)容時嘱兼,則反過來国葬。

淘寶

打開APP的第一個頁面是功能,所以先展示再加載的:


隨便點(diǎn)擊一個模塊(不要點(diǎn)菜單),下面要展示的將要是內(nèi)容(商品)汇四,所以是先加載再展示的接奈,沒有加載完都不展示:

京東

同樣的,功能模塊先展示后加載:


內(nèi)容先加載通孽,沒加載完不展示:


兩種方式各有利弊:

先展示序宦,后加載:

優(yōu)點(diǎn):給用戶0等待的錯覺

缺點(diǎn):當(dāng)前數(shù)據(jù)有可能是錯的,而且得等用戶操作到最后一步才會發(fā)現(xiàn)

先加載背苦,后展示:

優(yōu)點(diǎn):保證數(shù)據(jù)的質(zhì)量和準(zhǔn)確

缺點(diǎn):網(wǎng)絡(luò)不好時互捌,造成等待

顯然,功能模塊對于一個產(chǎn)品來說是既有固定的行剂,在短時間內(nèi)幾乎不會更新秕噪,所以這種數(shù)據(jù)出現(xiàn)錯誤或與當(dāng)前狀態(tài)不同的幾率小得多,因此厚宰,可以使用先展示后加載的方式腌巾。

另一方面,內(nèi)容(特別是商品數(shù)據(jù))是最容易產(chǎn)生變動的铲觉,為了保證每一個消費(fèi)者看到的數(shù)據(jù)都是最真實(shí)澈蝙,最準(zhǔn)確的,所以務(wù)必要先加載再展示撵幽。

三灯荧、刷新機(jī)制

1、空白頁面刷新失敗有提示

現(xiàn)在的應(yīng)用都標(biāo)榜以內(nèi)容為中心盐杂,所以都會極力避免空白頁面的出現(xiàn)漏麦。對于大部分的應(yīng)用,最好的方法就是使用緩存况褪,進(jìn)入頁面之后撕贞,先顯示之前的緩存,然后再進(jìn)行內(nèi)容的刷新测垛。其次捏膨,消滅空白頁面的第二種方法就是提供系統(tǒng)推薦項(xiàng)進(jìn)行替代。但是對于一些頁面食侮,頁面內(nèi)容跟用戶的使用狀態(tài)關(guān)系密切号涯,無法避免會出現(xiàn)空白頁面,這時候會使用一些引導(dǎo)類的提示锯七,使得頁面變得更加豐富链快,同時可以促進(jìn)用戶產(chǎn)生內(nèi)容。

但是一些資訊類應(yīng)用眉尸,比如讀讀日報域蜗,打開默認(rèn)是空白頁面巨双,然后再加載內(nèi)容(我不是很明白這種設(shè)定)。其他一些應(yīng)用霉祸,比如:豆瓣一刻和MONO筑累,每天第一次進(jìn)入應(yīng)用的時候也會出現(xiàn)空白頁面。我猜想第二類應(yīng)用的展示方式的原因是這樣的丝蹭。他們的內(nèi)容**都是嚴(yán)格以天為單位的慢宗,每天固定時段**精選內(nèi)容。他們會希望你每天只看并且看完當(dāng)天的東西奔穿,所以一旦到了第二天镜沽,昨天的內(nèi)容就是累贅了。所以每天第一次進(jìn)入應(yīng)用的時候會出現(xiàn)空白頁面贱田,象征著每天都是從新開始淘邻。此時就會對應(yīng)一個“空白刷新”邏輯。

空白刷新對應(yīng)的場景是這樣子的:用戶想要刷新出內(nèi)容湘换,并且用戶知道這里可以刷出新內(nèi)容,但是沒有刷新成功统阿,這時候需要給用戶一個交待彩倚。所以需要提示用戶。同時扶平,提示完用戶之后需要給用戶一個解決方法帆离,這就是“點(diǎn)擊后重試”。

2结澄、緩存頁面刷新失敗無提示

常見的應(yīng)用比如知乎哥谷、網(wǎng)易新聞、好奇心日報麻献、微信朋友圈等们妥,這些應(yīng)用都會采用緩存的形式,打開之后顯示的是緩存內(nèi)容勉吻,然后系統(tǒng)會給服務(wù)器發(fā)送請求监婶,如果有內(nèi)容更新的話就會自動更新一次內(nèi)容,更新之后的內(nèi)容直接覆蓋當(dāng)前的內(nèi)容齿桃。更新失敗之后是沒有提示的惑惶。但是有一些應(yīng)用,比如有道詞典短纵、企鵝FM带污、網(wǎng)易云音樂等,他們更新失敗之后是有提示的香到。

我覺得這兩種應(yīng)用的區(qū)分點(diǎn)在于

應(yīng)用的使用頻率鱼冀;

內(nèi)容的時間連續(xù)性报破;

界面之間的關(guān)系緊密度。

比如說網(wǎng)易新聞雷绢,作為一個打發(fā)時間的工具泛烙,每天使用頻率就會比較高,所以用戶進(jìn)來之后是想看看有沒有更新翘紊。其次蔽氨,網(wǎng)易新聞的內(nèi)容是連續(xù)不斷更新的,所以用戶會知道當(dāng)前顯示的內(nèi)容是我看看過并且處理過的帆疟。最后鹉究,新聞列表頁面顯示的是摘要,用戶可以通過摘要快速進(jìn)行判斷是否要進(jìn)入詳情頁踪宠,摘要有助于幫助用戶回憶上一次的使用場景自赔。

所以這就對應(yīng)著一個這樣的場景:用戶只是想看看有沒有更新,所以他們已經(jīng)做好了“沒有新內(nèi)容”的心理預(yù)期柳琢,所以即使是更新不了內(nèi)容绍妨,用戶也不會想太多。反倒是柬脸,如果進(jìn)行了錯誤提示他去,用戶可能會有一種挫敗感。因?yàn)樗垃F(xiàn)在有內(nèi)容倒堕,只是因?yàn)榫W(wǎng)絡(luò)的原因而沒有更新灾测,他要進(jìn)行的任務(wù)受到了外界因素的阻礙,由此產(chǎn)生一種細(xì)微的挫敗感垦巴。

3媳搪、緩存頁面刷新失敗有提示

另一類應(yīng)用,使用頻率沒那么高骤宣,或者內(nèi)容不具備時間連續(xù)性的秦爆,又或者說當(dāng)前界面無法喚起用戶上一次的使用場景。那么就有必要進(jìn)行率先你失敗提示了憔披。

比如說企鵝FM鲜结,音頻類的應(yīng)用注定使用不會那么頻繁,因?yàn)橥ㄟ^視覺接收的信息會比通過聽覺接收的信息更快更多活逆,同時音頻類對環(huán)境的要求較高(比如用耳機(jī)時要求環(huán)境不那么嘈雜精刷,外放時要求在私人場所)。其次蔗候,此類應(yīng)用都是實(shí)時推薦的怒允,不存在時間連續(xù)性的問題,用戶無法通過時間來判斷內(nèi)容是否被閱讀過锈遥。再者纫事,標(biāo)題也無法幫你快速做出判斷勘畔,你還是要進(jìn)去聽過才知道內(nèi)容是什么。最后如果不提醒丽惶,用戶進(jìn)入到詳情頁再收到提醒炫七,就會覺得應(yīng)用浪費(fèi)了用戶的時間。所以钾唬,對于此類內(nèi)容万哪,刷新失敗是有必要進(jìn)行提醒的。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末抡秆,一起剝皮案震驚了整個濱河市奕巍,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌儒士,老刑警劉巖的止,帶你破解...
    沈念sama閱讀 218,451評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異着撩,居然都是意外死亡诅福,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評論 3 394
  • 文/潘曉璐 我一進(jìn)店門拖叙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來氓润,“玉大人,你說我怎么就攤上這事憋沿。” “怎么了沪猴?”我有些...
    開封第一講書人閱讀 164,782評論 0 354
  • 文/不壞的土叔 我叫張陵辐啄,是天一觀的道長。 經(jīng)常有香客問我运嗜,道長壶辜,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,709評論 1 294
  • 正文 為了忘掉前任担租,我火速辦了婚禮砸民,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘奋救。我一直安慰自己岭参,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,733評論 6 392
  • 文/花漫 我一把揭開白布尝艘。 她就那樣靜靜地躺著演侯,像睡著了一般。 火紅的嫁衣襯著肌膚如雪背亥。 梳的紋絲不亂的頭發(fā)上秒际,一...
    開封第一講書人閱讀 51,578評論 1 305
  • 那天悬赏,我揣著相機(jī)與錄音,去河邊找鬼娄徊。 笑死闽颇,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的寄锐。 我是一名探鬼主播兵多,決...
    沈念sama閱讀 40,320評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼锐峭!你這毒婦竟也來了中鼠?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,241評論 0 276
  • 序言:老撾萬榮一對情侶失蹤沿癞,失蹤者是張志新(化名)和其女友劉穎援雇,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體椎扬,經(jīng)...
    沈念sama閱讀 45,686評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡惫搏,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,878評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了蚕涤。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片筐赔。...
    茶點(diǎn)故事閱讀 39,992評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖揖铜,靈堂內(nèi)的尸體忽然破棺而出茴丰,到底是詐尸還是另有隱情,我是刑警寧澤天吓,帶...
    沈念sama閱讀 35,715評論 5 346
  • 正文 年R本政府宣布贿肩,位于F島的核電站,受9級特大地震影響龄寞,放射性物質(zhì)發(fā)生泄漏汰规。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,336評論 3 330
  • 文/蒙蒙 一物邑、第九天 我趴在偏房一處隱蔽的房頂上張望溜哮。 院中可真熱鬧,春花似錦色解、人聲如沸茂嗓。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,912評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽在抛。三九已至,卻和暖如春萧恕,著一層夾襖步出監(jiān)牢的瞬間刚梭,已是汗流浹背肠阱。 一陣腳步聲響...
    開封第一講書人閱讀 33,040評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留朴读,地道東北人屹徘。 一個月前我還...
    沈念sama閱讀 48,173評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像衅金,于是被迫代替她去往敵國和親噪伊。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,947評論 2 355

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,144評論 25 707
  • 外行人對交互設(shè)計(jì)的第一印象是什么?畫線框圖的惩琉?做草稿的豆励? 的確,大家所看到交互設(shè)計(jì)師的日常工作成果都是一些線框圖瞒渠,...
    dba681c9624f閱讀 3,147評論 0 12
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理良蒸,服務(wù)發(fā)現(xiàn),斷路器伍玖,智...
    卡卡羅2017閱讀 134,657評論 18 139
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫嫩痰、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,104評論 4 62
  • 如何查看Android APP能夠運(yùn)行的最低系統(tǒng)版本? 使用Android自帶工具 aapt 即可椰棘,以Window...
    簡書冷雨閱讀 15,147評論 0 4