基于Headless chrome的高性能,通用服务器渲染,可在服务器中渲染任何SPA(浏览器中的渲染数据)以进行SEO或其余优化。javascript
npm i chrome-render
ChromeRender
then use it to render
a web page, a ChromeRender
means a chrome.const ChromeRender = require('chrome-render');
// ChromeRender.new() return a Promise, you can use async function in this way:
// const chromeRender = await ChromeRender.new();
ChromeRender.new({}).then(async(chromeRender)=>{
const htmlString = await chromeRender.render({
url: 'http://qq.com',
});
});
复制代码
一个
chromeRender
实例能够调用render
多时间和并发的高频率使用状况。chromeRender
将一个选项卡池管理为render
多页并发。html
await chromeRender.destroyRender()
kill chrome add释放全部资源。ChromeRender.new()
方法支持选项:maxTab
:number
max chrome chrome将打开以渲染页面,默认值是无限制,maxTab
用于避免过多的chrome致使chrome崩溃。ChromeRender
将建立一个选项卡轮询以重用选项卡,以提升性能并减小资源,由于chrome中的打开和关闭选项卡须要时间,例如数据库链接轮询。chromeRunnerOptions
:object
与chrome-runner的选项相同,能够配置chrome的启动选项,详细信息请参阅chrome-runner的选项chromeRender.render()
方法支持选项:url
:string
是必填项,网页的URLcookies
:object {cookieName:cookieValue}
是一个可选参数。在请求网页时设置HTTP cookieheaders
:object {headerName:headerValue}
是一个可选参数。在请求网页时添加HTTP标头useReady
:boolean
是否window.isPageReady=1
已准备好用于通知chrome-render页面。默认为false chrome-render使用,domContentEventFired
由于页面已准备就绪。script
:string
是一个可选参数。注入脚本源以评估页面什么时候加载renderTimeout
:number
以毫秒为单位,render()
若是html字符串以后没法解析,则会引起错误renderTimeout
,默认值为5000ms。deviceMetricsOverride
:object
为响应型网站覆盖设备屏幕尺寸的值,详细用法请参见此处clearTab
:boolean
若是true
渲染chrome实例以后将导航about:blank
到可用资源。默认值为true
。设置为false
渲染同一网站时可能会提升页面加载速度。chrome-render的全部请求都将带有HTTP标头
x-chrome-render:${version}
学习下来 受益不浅java
手动艾特做者 @浩麟 大佬git