【问题标题】:PhantomJS keeping cachePhantomJS 保持缓存
【发布时间】:2014-04-30 14:34:02
【问题描述】:

我正在使用 phantom js 测试访问网页,这在大约半小时的时间内运行了大约 350 次。然后我针对服务器运行 webalizer 以测试页面访问。

我的 phantom js 客户端位于 phantom js 的 1 个实例中,因此它基本上可以在一个客户端打开网页后启动下一个客户端的意义上工作,所有这些客户端都具有单独的 IP 地址和 MAC 地址。

但是,我在 webalizer 中发现的是,虽然我在服务器上获得 350 次点击,但我在一些 css 文件和其他文件上运行的每个 phantomjs 实例仅获得 1 次点击。所以我想出了将客户端缓存在一起的想法。

我在调用 phantom js 实例时尝试运行 --max-disk-cache-size=0 但仍然看到它的行为相同。

以前有没有人遇到过同样的情况?

【问题讨论】:

    标签: javascript phantomjs


    【解决方案1】:

    page.open 可以清理缓存之前运行page.clearMemoryCache();

    它在 this issue 中提到,它在 PhantomJS 2.0 中运行良好。

    【讨论】:

    • 该问题还提到问题可能仍然存在 - 这是真的吗?
    • 不起作用。我得到[TypeError: page.clearMemoryCache is not a function]
    【解决方案2】:

    没有办法清除缓存(内存或磁盘)。几个月前,githubhere 上的一个 issue 已打开,我仍然希望将来会发布。

    唯一的方法是在没有磁盘缓存的情况下启动一个新的 phantomjs 实例。

    PhantomJs 是一个无头浏览器,因此请将 PhantomJS 实例视为唯一用户。在您最喜欢的浏览器中打开同一个网页 100 次是否会下载您网页的每个资源 100 次?不,这正是 PhantomJS 的工作原理。

    【讨论】:

    • 我找到了解决方法,大部分代码已经完全实现,但是 page.settings.clearMemoryCaches = true 选项没有遵循link 来访问代码,这是一种享受。使用同一个 phantom 实例来控制多个客户端的想法,它使用的内存更少!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-25
    相关资源
    最近更新 更多