ionic做一个简单的新闻app,来抓取学校官网上的新闻,但是ionic程序异常导致无法启动。
发布于 20天前 作者 qianjiahao 308 次浏览 来自 问答

在ionic的controller里使用superagent来抓取网页数据,然后在页面上显示。 但是不知道为什么,app一开始就无法加载,显示白屏, 不知道是不是抓取数据影响了app的加载。 大家有没有什么解决办法??

13 回复

浏览器调试白屏还是真机测试白屏?肯定是js 里有错误,好好检查下~

@vlover 在emulate启动的时候,模拟机直接就白屏,不知道是不是因为抓数据的缘故影响到了程序加载

不可能因为抓数据影响了程序加载。。ionic 中不会涉及到跨域问题吗?superagent 在 webview 里面应该也是受浏览器安全策略影响的吧

@alsotang 这段代码我单独执行过,是没有问题,可以抓取到数据的,就抓一个href和title js代码:

    var url = 'http://www.neusoft.edu.cn/';

    request(url, function (err, res, body) {
        if (err) console.log(err);

        var top = {};
        var $ = cheerio.load(body);
        
        $('#news .topline a.toptitle').each(function (index, element) {
            var $element = $(element);

            top.href = $element.attr('href');
            top.title = $element.text();

        });
        $scope.top = top;
        //console.log(top);
    });

angular代码:

    <ion-item ng-repeat="playlist in playlists">
    {{playlist.href}}
      {{playlist.title}}
  </ion-item>

但是当我emulate模拟机的时候,启动的非常慢,大约5秒后,ionic的图标消失,然后就陷入白屏。。。。不知道是为什么。。。

@alsotang 这个帖子问题在:它为啥在ionic的controller抓取东西?不是应该抓取,入库,然后ionic只负责render么?

@i5ting 因为一共抓取的数据不超过10条,希望可以即抓及看,也不保存,希望大家能帮忙解决下。。。。

@qianjiahao 那就ajax取不行么?不然你这样的会很痛苦啊

先别模拟器,浏览器里面呢?

@i5ting 怎么用ajax取呀。。。小弟不太明白意思。。。

@ilanceli 我建个js文件,贴上代码,node 执行,可以正常去到数据,打印在控制台,到了ionic里不知道哪里出了问题了。。

问题最后解决了,感谢小俞大神~~ 附上代码,希望新手少走弯路

@qianjiahao 怎么解决的?问题出在哪儿?

@vlover 额,其实当时我是用模拟器看的,所以看不到错误所在,后来我用浏览器来调试,就找到错误,就调好了

回到顶部