当前位置: 首页 > 面试题库 >

PhantomJS是否默认存储任何持久性文件?

裴意
2023-03-14
问题内容

作为PhantomJS的新用户,我想确保自己了解PhantomJS如何处理HTTP请求中累积的数据持久性。

我的问题是: 默认情况下,PhantomJS是否持久存储任何数据
(即,一个简单的示例,您没有require('fs')在脚本中的任何地方使用该请求来存储请求,而是将其转储到STDOUT)。我假设来自page.evaluate()调用的所有工作都在内存中完成。

这是一个简单的示例:

var page = require('webpage').create(),
system = require('system'),
address;

if(system.args.length != 2)
{
    console.log('Usage: phantomjs thisFile.js URL');
    phantom.exit(1);
}
else
{
    address = system.args[1];

    page.open(address, function (status)
    {
        if(status !== 'success')
        {
            console.log('Unable to load the address!');
            phantom.exit(1);
        }
        else
        {
            // Wait for the js to finish loading
            window.setTimeout(function(){
                var results = page.evaluate(function(){
                    return document.documentElement.innerHTML;
                });

                console.log(results); // This would be to stdout

                phantom.exit(0);
            }, 200);
        }
        console.log("Done.");
    });
}

该脚本将由调用phantomjs thisScript.js www.example.com

我知道您可以将页面保存到文件中,我只想确保我知道PhantomJS可以自行存储数据的所有位置。


问题答案:

是的,默认情况下会保存一种类型,这就是localStorage数据库。

  • 在Windows 7上: C:\Users\<user>\AppData\Local\Ofi Labs\PhantomJS
  • 在Windows 8上: C:\Ofi Labs\PhantomJs
  • 在Linux上: /home/<user>/.qws/share/data/Ofi Labs/PhantomJS

仅当您添加命令行选项时,其他所有内容才会保存。磁盘缓存位于上述目录中,必须明确设置cookie文件路径。

因此,这意味着,如果您测试的Web应用程序不使用localStorage,则可以并行运行PhantomJS。



 类似资料:
  • 我在谷歌云存储中有1个存储桶。Firebase创建一个新的bucket,这是Firebase控制台中的默认值。我想更改默认bucket并删除firebase创建的bucket。我如何在谷歌云存储中找到我的存储桶的配置设置。 这是默认的bucket:

  • 我是EE的新手,我正在Weblogic 12c上开发一个应用程序。数据源在管理控制台中测试良好。当EJB试图访问它时,它会抛出这个ClassNotFoundException。我已经做了三个小时的研究,我知道问题是一些jar不在服务器的类路径中,但我不知道是哪一个!!!我正在使用默认的Eclipse Link持久性提供程序并使用MySQL驱动程序。这两个都是用Weblogic打包的(根据Oracl

  • 问题内容: 关闭redis服务器后,使用set存储的值被破坏,在这里我找到了使用持久性存储的方法,有人帮助我,如何使用javascript实现它? 我想将来自客户端的一些值存储在redis db中,并且必须在其他客户端中使用该值。 问题答案: 您需要配置Redis服务器以支持持久性机制。此配置存储在文件中,该文件在redis-server命令行上作为参数给出。 这是Redis 2.4的默认文件:h

  • 问题内容: 我在应用程序中看到,解析的XML文件中的xinclude在Java XSLT转换中不起作用。 但是,尽管我这样做: 我没有将变压器工厂专门设置为返回“ null”。 我的问题:默认的Java(1.6或6)是否支持xinclude,还是必须添加替代的XSLT解析器(如Apache Xerces)? 问题答案: 根据规范,自Java 1.5(5)以来一直提供支持。我相信XInclude支持

  • 本平台是通过storageclass来动态创建PV。也就是说咱们依赖于storageclass,如果您的Kubernetes不支持相应的存储试,将无法非常方便的进行挂载。 目前暂不支持挂载多个PVC,或许以后会更新吧。 这里演示的是用的NFS进行演示,实际使用时可根据自己的需求配置相应的provisioner,其他配置是一样的不需要调整,只需要在“模版管理” 调整StorageClass和Pers

  • 问题内容: 我所说的“耐用”是指服务器可以随时崩溃,只要磁盘保持完好无损,就不会丢失任何数据(请参阅ACID)。好像这就是日记模式的用途,但是如果启用日记功能,这是否会破坏对内存数据进行操作的目的?读操作可能不受日记影响,但是日记似乎会破坏您的写入性能。 问题答案: 即使使用日志记录,Redis 通常 也不会部署为“耐用”数据存储(在ACID中为“ D”的含义)。大多数用例有意牺牲一些耐用性以换取