2

我有一个 nodejs+phantomjs 设置。我正在尝试生成 html 并将其提供给 bot 以进行 seo。该应用程序目前可以运行,但我想提高性能。由于加载了很多 js 文件,我正在尝试更新 phantomjs 中的资源路径,以便将资源指向本地,而不是在浏览器中发出 http 请求以提高性能。

我正在做这样的事情。

page.onResourceRequested = function (requestData, request) {

  if(requestData.url.indexOf('.js') > 0) {
    requestData.url = requestData.url.replace("http://foo.com/","/path to local directory of the resources");

  }

但这似乎不起作用。在网络选项卡中,我仍然看到从外部来源提取的资源。

有没有替代方法?我还查看了似乎没有帮助的 phantomjs 中的缓存。

非常感谢您的帮助。谢谢。

4

1 回答 1

3

刚刚查看文档后找到了解决方案。

onResourceRequested

请求资源。回调的第一个参数是 requestData 元数据对象。第二个参数是 networkRequest 对象本身。

例子:

page.onResourceRequested = function(requestData, networkRequest) {
   console.log('Request (#' + requestData.id + '): ' + JSON.stringify(requestData)); 
}; 
  • abort():中止当前的网络请求。中止当前网络请求将调用 (onResourceError) 回调。

  • changeUrl(url):更改网络请求的当前 URL。

request.changeUrl(url) 可用于更改 url。

http://phantomjs.org/api/webpage/handler/on-resource-requested.html

于 2013-04-25T20:44:01.907 回答