Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用JavaScript时出现PhantomJS内存耗尽错误_Javascript_Phantomjs - Fatal编程技术网

使用JavaScript时出现PhantomJS内存耗尽错误

使用JavaScript时出现PhantomJS内存耗尽错误,javascript,phantomjs,Javascript,Phantomjs,到目前为止,我已经在网上搜索了一个解决方案。我知道这是一个有文档记录的问题,但我只尝试加载一个网页,所有的响应都是这样的,我尝试在200个页面上进行测试 我试过: page.settings.loadImages=true; page.settings.loadplugins=false 我添加了``page.close`,尽管正如我所说,它现在只有一个URL 我也尝试过将loadImages设置为false。当我删除我的一行JavaScript(例如,用document.title替换它)时,

到目前为止,我已经在网上搜索了一个解决方案。我知道这是一个有文档记录的问题,但我只尝试加载一个网页,所有的响应都是这样的,我尝试在200个页面上进行测试

我试过:

page.settings.loadImages=true; page.settings.loadplugins=false

我添加了``page.close`,尽管正如我所说,它现在只有一个URL

我也尝试过将loadImages设置为false。当我删除我的一行JavaScript(例如,用document.title替换它)时,它工作得很好,但只要那一行存在,内存使用量就会飙升到1000MB,然后它就退出了

我唯一的目标是检查页面上是否存在某个元素。我如何解决这个问题?我在网上找到的解决方案都不适合我

有关守则:

var system = require('system');
var page = require('webpage').create();
page.settings.userAgent = 'Chrome/52.0.2743.116';
var url = 'http://www.example.com/';
var ending = system.args[1];
ending = encodeURIComponent(ending);
url = url + ending;

page.settings.loadImages = false;
page.settings.loadplugins = false;

page.viewportSize = { width: 1680, height: 1050 };

page.open(url, function(status) {
setTimeout(function(){
  var elem = page.evaluate(function() {
    return $(".primary-info")[0];
  });
  if(!elem){
    console.log('no image found');
    page.render(ending+'.png');
      }
    page.close();
    phantom.exit();
      }, 5000);
});

不要只返回整个对象,它可能有很多属性。只带必要的东西:

  var elem = page.evaluate(function() {
    var data = {};
    var item = $(".primary-info")[0];
    data.title = item.value;
    data.color = item.style.color;
    return data;
  });

非常感谢你!我想现在可以了!哦,你帮我省了那么多体力活。。。我不知道它想要回报这么多