2013-04-25 118 views
2

我有一個nodejs + phantomjs設置。我正在嘗試生成html並將其提供給seo的bot。該應用程序目前的作品,但我想提高性能。由於大量的js文件被加載,我正在嘗試更新phantomjs中的資源路徑,以便將資源指向本地,而不是在瀏覽器中發出http請求以提高性能。PhantomJS更新資源文件路徑

我正在做這樣的事情。

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中的緩存。

非常感謝幫助。 謝謝。

回答

3

查看文檔後發現解決方案。

onResourceRequested

請求的資源。回調的第一個參數是 requestData元數據對象。第二個參數是networkRequest 對象本身。

實施例:

page.onResourceRequested = function(requestData, networkRequest) { 
    console.log('Request (#' + requestData.id + '): ' + JSON.stringify(requestData)); 
}; 
  • 中止():將中止當前網絡請求。中止當前的網絡請求 將調用(onResourceError)回調。

  • changeUrl(url):更改網絡請求的當前URL。

request.changeUrl(url)可用於更改網址。

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