通过PhantomJs获取总页面大小

时间:2014-03-17 15:26:09

标签: javascript phantomjs

我正在使用phantomjs(命令行界面)来获取HAR数据,为此我正在使用netsniff.js,使用类似这样的命令:

phantomjs netsniff.js YourURL > out.har

然而,这给了我输出文件中的正确HAR数据(out.har) 并且使用那个HAR数据我正在计算页面大小,我从"log > entries > response > bodySize"得到的"out.har"得到的页面大小和计算后得到的总大小与我得到的大小不一致运行浏览器和网络活动中的URL后,在底部显示检查元素(转移333kb)。

而且在HAR数据中,我没有得到"Content-Length"我认为如果文件状态为(304 not modified also),哪个正确大小是正确的? 如果不是如何获得正确的页面大小??。

1 个答案:

答案 0 :(得分:3)

我没有使用netsniff.js,但我有一些建议:

  1. 尝试使用page.clearMemoryCache();

  2. 停用缓存
  3. phantomjs仍有bodySize的错误,所以我同时使用它们

  4. 
    > function getRealSize(response) {
    >     var tmp, size;
    >     for(var i=0; i<response.headers.length; i++) {
    >         tmp = response.headers[i];
    >         if(tmp.name == 'Content-Length') {
    >             return parseInt(tmp.value, 10);
    >         }
    >     } 
    > }
    > size = getRealSize(response) || response.bodySize;
    
    
    1. Content-Length无法进入gzip,因此请禁用gzip:
    2. 
      > page.customHeaders = {
      >     'Accept-Encoding': 'gzip;q=0'
      > };
      
      

      (事实上,永远不应该使用bodySize,但我没有测试所有情况)

      它对我有用。