小程序模板網(wǎng)

微信小程序開發(fā)問答《七十九》不能使用session如何解決 & 小程序處理JS很慢 .

發(fā)布時(shí)間:2018-04-25 10:55 所屬欄目:小程序開發(fā)教程

1、微信小程序請(qǐng)求不能使用session如何解決?

A:本人在前面的微信小程序開發(fā)《二》中提到要想在服務(wù)端保持狀態(tài)需要在客戶端第一次請(qǐng)求服務(wù)器的時(shí)候給客戶端返回一個(gè)sessionid,由客戶端在本地保存,下次請(qǐng)求的時(shí)候在header里面帶上這個(gè)sessionid,寫到cookie字段里。但是最近發(fā)現(xiàn)請(qǐng)求時(shí)哪怕每次在header里帶上sessionid還是不能拿到同一個(gè)session,百度后終于發(fā)現(xiàn)坑了(也不知道微信為啥要這么做),原來微信對(duì)wx.request這個(gè)API做了修改,小程序發(fā)起的請(qǐng)求并不是直接請(qǐng)求我們的后臺(tái)服務(wù)器,而是先通過微信的服務(wù)器再發(fā)送到我們的后臺(tái)服務(wù)器,既然請(qǐng)求都是要通過微信的服務(wù)器發(fā)送到我們的服務(wù)器,那么我們的服務(wù)器也就無從識(shí)別請(qǐng)求的發(fā)起者了。因此,session在微信小程序的后臺(tái)開發(fā)中是無法使用的。 
既然session無法使用,對(duì)于本人這種web的后端程序猿該如何是好,只能用別的方式來代替了哦。我用了redis來代替session的功能,當(dāng)客戶端發(fā)送請(qǐng)求到后臺(tái)服務(wù)器時(shí),生成一個(gè)隨機(jī)字符串作為key,原本要放入session的內(nèi)容,一般是用戶信息作為value存入redis中,然后將key返回給客戶端,客戶端將key存在本地的storage,在下次請(qǐng)求的時(shí)候以參數(shù)據(jù)形式將key帶上,這樣當(dāng)后端服務(wù)器接收到key時(shí)便可以從redis中查找該key對(duì)應(yīng)的value,從而實(shí)現(xiàn)了替代session的效果,redis還可以設(shè)置key失效的時(shí)間。

2、微信小程序報(bào)錯(cuò): Cannot read property '0' of undefined

A:今天遇到了一個(gè)bug:

 

				
  1. VM4735:2 Uncaught TypeError: Cannot read property '0' of undefined

查了很久發(fā)現(xiàn)是三目運(yùn)算寫錯(cuò)了,這種低級(jí)錯(cuò)誤容易犯,而且又很難發(fā)現(xiàn)。

最后是一段一段注釋掉,用排除法來縮小范圍來找到的。直接看代碼很難發(fā)現(xiàn)。

 

				
  1. <view>{{param:1:2}}</view>

to

 

				
  1. <view>{{param?1:2}}</view>

3、小程序里面不支持document或window語法,那請(qǐng)問這里要用什么方式來代替? 

A:由于框架并非運(yùn)行在瀏覽器中,所以 JavaScript 在 web 中一些能力都無法使用,如 document,window 等。  https://mp.weixin.qq.com/debug/wxadoc/dev/api/api-react.html

https://mp.weixin.qq.com/debug/wxadoc/dev/framework/view/wxml/data.html

 

4、為啥小程序處理JS很慢很慢 ?

我在網(wǎng)頁上跑 這一段代碼一兩秒就可以了,在小程序上跑了10秒左右,這段代碼有130行左右,一直循環(huán)匹配,太耗性能了吧,在網(wǎng)頁上還好。小程序里太慢了!

A:看樣子應(yīng)該是你數(shù)據(jù)量太大了,調(diào)用setData之后覺得卡頓,建議不要用setData傳輸太大的數(shù)據(jù)



易優(yōu)小程序(企業(yè)版)+靈活api+前后代碼開源 碼云倉庫:starfork
本文地址:http://22321a.com/wxmini/doc/course/24056.html 復(fù)制鏈接 如需定制請(qǐng)聯(lián)系易優(yōu)客服咨詢:800182392 點(diǎn)擊咨詢
QQ在線咨詢