美文网首页
被我们忽视的懒加载

被我们忽视的懒加载

作者: StonesMonkey | 来源:发表于2017-05-26 16:59 被阅读69次

     最近去了一家新的公司,代码是外包做的,简直蛋疼,一个UIStoryboard加几百个控制器我就不说了,目前开发只有一些较旧的代码或者外包的代码才会这样,不过日常开发中一些小的细节也很值得我们注意。比如今天我们说的懒加载。
     我认为,在懒加载就是加载控件的地方,至于控件逻辑以及其它属性不应该在懒加载上写
先看一段代码

<pre>

  • (UIWebView *)webView{
    if(_webView == nil){
    _webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 64, SCREEN_WIDTH, SCREEN_HEIGHT - 64)];
    [self.view addSubview:_webView];
    _webView.contentMode = UIViewContentModeScaleAspectFit;
    _webView.delegate = _progressxy;

    }
    return _webView;
    }
    </pre>

上面我认为有以下几个错误。
1.懒加载就是当程序要使用的时候才加载,程序不使用的时候不加载。webView直接设置了frame值,这样拿出去就是一个有frame值的webView,就会导致webView的frame值被写死。这里的webView的控制器因为是有NavtivagitionController的,所以会高度减少64个高度。但是我们知道UIController有两个值,一个是self.automaticallyAdjustsScrollViewInsets 另外一个是 self.edgesForExtendedLayout.第一个是控制器是否下降64个高度,也就是默认状态下,控制器在windows的y值是64,edgesForExtendedLayout是上下左右限制 View的初始宽度,所以WebView这样写死frame值明显是不对的。WebView的frame值应该根据和View的大小一致。故而应该在viewWillAppear上加下面代码,而懒加载里边不应该加frame值。

<pre>

  • (void)viewWillAppear:(BOOL)animated{
    [super viewWillAppear:animated];

    self.webView.frame = self.view.bounds
    }
    </pre>

第二个问题,就是它设置了webView的代理。_progressxy,_progressxy是一个进度条,其实是webView的一个扩展工具类,这里比较我们就遇到了这个bug,就是webView的代理方法一直都不执行,没错,一直都不执行,并不是工具类的问题,而是在这个时候工具类的初始化是写在Url的set方法里边,而懒加载webView的加载在viewDidload里边,当这个控制器加载的时候,外边就必须设置控制器的frame值,所以这个时候懒加载webView ,_progressxy就是nil,所以代理方法不执行。所以,我依旧建议,在webView里边不要去写任何的逻辑。

相关文章

  • 被我们忽视的懒加载

    最近去了一家新的公司,代码是外包做的,简直蛋疼,一个UIStoryboard加几百个控制器我就不说了,目前开发只有...

  • Swift 懒加载

    什么是懒加载 懒加载是在程序中使用到变量的时候才开始加载或者计算变量的值。 懒加载的好处 由于懒加载是在变量被用到...

  • web优化之懒加载和预加载

    懒加载和预加载是常用的web优化的手段。所以我们首先应该明白什么是懒加载和预加载。懒加载:懒加载也加延迟加载,延迟...

  • Android - 懒加载

    今天我们来聊一聊ViewPager+Fragment的懒加载。 1.什么是懒加载,为什么要用懒加载? 如果我们的项...

  • iOS——懒加载失效

    什么是懒加载? 懒加载: 1、也被成为延迟加载,可以做到用到时再加载 2、加载过了就不会再次加载,节约了系统资源 ...

  • 十二、类的加载

    懒加载类: 别人不动,我不动 非懒加载类: 通过+load 提前加载 我们可以到平时懒加载通过消息转发触发 ,所以...

  • 图片懒加载和预加载

    图片懒加载的原理是什么? 首先明白为什么要懒加载: 懒加载即延迟,对于图片过多的页面,为了加快页面加载速度,我们需...

  • 懒加载

    知识点 webpack代码拆分动态倒入懒加载 1.懒加载 懒加载我们都知道,不即时加载所有资源,而是在需要的时候才...

  • 懒加载

    什么是懒加载? 懒加载其实就是延迟加载,按需加载,只有在需要时才加载,他是网站的一种优化方案。 我们为什么要使用懒...

  • Web前端性能优化(二)

    1. 懒加载和预加载 懒加载 即延迟加载,在电商或是页面很长的业务场景中,我们通常会使用懒加载的方式对图片进行请求...

网友评论

      本文标题:被我们忽视的懒加载

      本文链接:https://www.haomeiwen.com/subject/rmexfxtx.html