收藏
回答

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

问题模块 框架类型 问题类型 API/组件名称 终端类型 操作系统 微信版本 基础库版本
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 个回答

  • 清欢°
    清欢°
    2018-05-25

    借楼问一下,有时候wx.reqeust会地址解析失败,ios打开五六次会出现一次这种情况


    2018-05-25
    赞同
    回复 2
  • Link
    Link
    2018-05-25

    你好,开发工具使用 Chrome 内核来实现,所以支持 HTTP 的一些特性。真机目前没有支持,我们后续考虑支持此类标准。

    2018-05-25
    赞同
    回复 1
    • habbi
      habbi
      2018-05-28

      感谢,希望能快快的支持此类标准。这对网络应用特别重要。

      2018-05-28
      回复