收藏
回答

在onLoad中wx.request在执行完前,wxml的内容会显示吗?

刚开始研究小程序,这个问题请教下:我想动态设置wxml中webview的url。用户在打开小程序时,默认打开这个从服务器得到的url网页。

因为是需要从服务器得到url,我计划是在onLoad中wx.request来GET请求,然后再用setData设置这个变量,之后wxml再打开这个网页

<web-view src="{{url}}"></web-view>

因为我不太清楚小程序的具体执行流程,请问这样是否可行?我比较担心wx.request还没有得到url的变量的时候,wxml就先加载了,这样就会出现一个严重的问题,那就是webview跳转的链接将是空的。当然也就跳转失败了。如果我这种方式不行,那么请问如何可以实现我的目标?谢谢您。

PS一下:因为我没在国内上大学,所以很多中文的专业词都看不懂,也不会用。我不知道这里这个url到底应该叫变量还是叫函数。我看见大家都叫函数,我也不知道函数是什么。。。

最后一次编辑于  08-26
回答关注问题邀请回答
收藏

3 个回答

  • Run
    Run
    08-26


    08-26
    赞同 1
    回复 4
    • LBC
      LBC
      08-27
      谢谢您的回复。您给的代码正好是我打算用的方法。但问题是,我想让页面一直处于loading状态,直到得到url为止。您的这个方法,应该会让页面初始化就打开了默认的服务器地址。之后是否会跳转,我一会儿尝试一下。
      08-27
      回复
    • Run
      Run
      08-27回复LBC
      页面一加载就加载wx.showLoading,等wx.request请求成功以后wx.hideLoading()隐藏,然后跳转页面
      08-27
      回复
    • LBC
      LBC
      08-27回复Run
      非常感谢您的回复。昨天都是在脑子里想,今天正式写了代码运行。发现了两个现象。都是在小程序开发工具中测试的(1)在wx.request运行完得到url之前,界面是不加载默认服务器地址的,我不明白为什么。但这点更好。(2) 这点是让我比较头疼的,我不确定这个是否是官方开发哦你工具本身的bug,在测试通过后,我多次尝试cmd+r来刷新界面。但得到的结果是随机的。有的时候会出现正确的webview界面,有的时候就是空白的界面。请问您知道原因吗?这种现象是否在发布后会出现?我就是担心,别打开界面,有的时候能显示web-view,有的时候显示不了,空白的。这样就体验太差了。现在刷新结果完全随机,无法判断是为什么。从console.log来判断wx.request请求每次都是成功的。就是有的时候显示界面,有的时候是空的。
      08-27
      回复
    • LBC
      LBC
      08-27回复Run
      澄清一下。(1)上条回复中的“界面是不加载默认服务器地址的”这里指的是默认data: {url} 值是完全不加载的。(2)我又测试了下真机调试,反正可以实现每次刷二维码都能正确打开webview。现在就是不确定在开发者工具里使用cmd+r来刷新界面时,随机出现的空白界面,是属于正常可忽略范畴,还是不可忽略。是否可忽略完全取决于将来生产环境,用户打开时是否有出现空白界面的机率。非常感谢您。
      08-27
      回复
  • var 友原
    var 友原
    08-27

    在webview外面加个wx:if,如果url为空的时候不渲染就行了

    08-27
    赞同
    回复 1
    • LBC
      LBC
      08-27
      您好,今天我写了代码,进行了测试。发现不需要wx:if。wx.request在执行完前,webview并不会加载默认的值。我具体不清楚是为什么,但这样更好。详见@Run回复的代码。默认的url在data的设定,是完全被忽略掉的。现在主要一个问题我也在@Run回复下面的评论里说了。就是我使用cmd+r来刷新开发者工具时,有一定机率页面是空白的,但是log显示wx.request是成功获取了url。在真机扫码调试中,因为不能刷新,只能扫一次码,每次都能加载页面成功。所以现在我不清楚为什么在调试工具刷新界面会出现空白界面的机率,这个是否会出现在生产环境?还是说这个就是调试工具的bug,可以忽略掉。
      08-27
      回复
  • 铭锋科技
    铭锋科技
    08-26

    改成同步

    08-26
    赞同
    回复 1
    • LBC
      LBC
      08-27
      谢谢您的回复,怎样改成同步?能给一些提示,或者直接给一些代码吗?谢谢您。
      08-27
      回复
问题标签