PhantomJS不支持GZIP编码内容(用于加快页面加载速度)

时间:2015-08-17 13:18:21

标签: encoding http-headers phantomjs gzip

我一直在学习phantomjs是如何工作的,并且在某些时候我发现使用page.open方法加载给定的URL需要更多的时间。

在深入研究这个问题的解决方案之后,我发现使用Accept-Encoding: gzip, deflate标题可以将加载速度提高3-8倍。

现在的问题是phantomjs默认无法处理gzip编码的内容,或者我可能不知道如何正确配置以支持gzip编码(我尝试在两种情况下都使用屏幕截图;使用和不使用gzip编码,但使用gzip编码,我得到了许多符号和特殊字符的奇怪图像)

当我使用cURLfile_get_contents时,它会比同一网址的phantomj更快。 现在我的问题是:

  1. 你们有没有想过为什么phantomJS花了这么多时间加载页面?
  2. 如何配置phantomJS以支持gzip编码的响应?
  3. 这是我的代码:

     var page = require("webpage").create();
     page.viewportSize = {
       width: 1024,
       height: 768
     };
    
     var start = Date.now();
     page.customHeaders = {
       'Accept-Encoding': 'gzip, deflate',
       'Connection': 'keep-alive',
       'Accept-charset': 'utf-8'
     };
     page.open('http://facebook.com', function() {
       console.log('PhantomJS load time:', Date.now() - start);
       page.render('screenshot.png');
       phantom.exit();
     });
    

0 个答案:

没有答案