基于 phantomjs 的全页面静态化技术原理

定义

  • 在服务端完成 html,css,甚至 js 的加载工作,渲染成纯 html 文件后直接以静态资源的方式部署到 CDN 上;
  • 不改动任何服务端代码,通过全页面静态化的手段,把已经渲染好的,布满数据的 html 页面,直接以 html 文件的形式部署到 CDN 上;
  • 全页面静态化的技术和网页爬虫非常的像,网页爬虫不知道引用的 js 文件或 css 文件,只知道最后爬出来的文件是一个可以在浏览器中渲染的文件;

phantomjs

  • phantomjs 是一个无头浏览器,可以借助其模拟 webkit js 的执行;
  • 有头浏览器就是一般说的浏览器,当在浏览器中访问 getitem.html 的时候,浏览器会加载 html,css,js,并执行 jQuery(document).ready(function(){...}) 方法,发送 ajax 请求,获取完数据,然后 reload dom;
  • 无头浏览器,其实不是个浏览器,但是可以模拟浏览器的一些功能,借助其模拟 webkit 的包完成 js 的执行;

phontomjs 实战

  • 执行这个文件,bin/phantomjs js/spiderbaidu.js
  • 2000 ms 之后的定时任务是等 jQuery(document).ready(function(){...}) 方法执行完成,把渲染好的页面以图片的格式输出;
var page = require('webpage').create();
page.open('http://www.baidu.com', function() {
    setTimeout(function() {
        page.render('baidu.png');
        phantom.exit();
    }, 2000)
});
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值