收藏
回答

wx.reqeust真机不支持cache control?不会将etag发送?

框架类型 问题类型 API/组件名称 终端类型 操作系统 微信版本 基础库版本
小程序 Bug wx.request 客户端 6.6.6 1.9.9


最近有用户老是反应我们的小程序打开白屏,我们在排查首页加载速度的时候,做了个埋点。统计了一下请求数据,其中一个是http code,惊奇的发现没有304,全是200


奇怪的是,我们的后台已经对多数数据变化不大的接口调用做了etag和last modified支持,而且我们在开发者工具调试的时候也发现这个机制是正常的。

我们的代码

/**
         * ajax请求
         * @param {Object} [请求选项,见request API]
         */
        ajax = (options = {}) => {
                if (!options.url) return;
                options.url = `${config.ajaxURL}${options.url}`;
                let fn = options.success,
                        error = options.fail;
                options.success = res => {
                        if (res.statusCode == 200) {
                                if (res.data.status == -11) {
                                        getApp().globalData.login(() => {
                                                wx.redirectTo({
                                                        url: $.history().fullPath,
                                                });
                                        });
                                        return;
                                }
                                if (res.data.status == 0 && typeof fn === 'function') return fn(res.data);
                                if (typeof error === 'function') error(res.data);
                        } else if (typeof error === 'function') error(res.data);
                };
                options.fail = res => {
                        console.log(res);
                        wx.showToast({
                                title: res.data,
                                icon: 'loading',
                        });
                        if (typeof error === 'function') error(res);
                }
                wx.request($.extend(true, options, {
                        header: {
                                "content-type": "application/x-www-form-urlencoded",
                                sk: (wx.getStorageSync('user') || {}).session_key,
                        },
                }));
        };


我们就采用真机抓包发现,在真实的手机上,一点作用都没有,每次都是直接200,请求的头里面也没有带etag上去



文档里也没有对这块做说明,要知道这套机制能显著的增强用户前端的体验,麻烦官方给个说明。如果是bug请修复。

最后一次编辑于  2018-05-25
回答关注问题邀请回答
收藏

2 个回答

登录 后发表内容