加载所有html依赖文件:js,css与浏览器一样

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了加载所有html依赖文件:js,css与浏览器一样相关的知识,希望对你有一定的参考价值。

我有SPA申请。

主要目标是使用https://artillery.io测试应用程序的性能。

由于应用程序是SPA,我想模仿用户第一次在浏览器中打开应用程序时加载所有静态内容的场景。实际上在artillery场景中的第一次请求期间,我预计将加载所有资源,如htmljscss文件。

一种方法是硬编码在加载资源时执行的所有GET调用,但由于js文件支持版本控制,我需要在新版本发布后立即更改文件名。

在浏览器等测试场景中是否有任何行为方式?例如,当加载html页面时,还加载了所有依赖项?

答案

你可以尝试phantomjs

JS代码:

var timeoutMs = 25000;
var result = {};

var timerId = setTimeout(function() {
    console.log('pageError: timeout');
    page.close();
    phantom.exit();
}, timeoutMs);

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

page.settings.userAgent = 'Mozilla/5.0 TEST';
page.viewportSize = { width: 1280, height: 1024 };

page.customHeaders = {
    'Connection'     : 'keep-alive',
    'Accept'         : 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'Accept-Encoding': 'identity',
    'Accept-Language': 'ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3'
};

address = system.args[1];

page.onLoadFinished = function(status) {
    result.loadMS = new Date().getTime() - startTime;
};

var startTime = new Date().getTime();
page.open(address, function (status) {    
    result.status = status;
    clearTimeout(timerId);
    console.log('<<<<RESULT>>>>');
    console.log(JSON.stringify(result));
    setTimeout(function(){
        phantom.exit();
    }, 0);
});

然后叫它:

phantomjs load.js https://artillery.io

结果:

{ “loadMS”:2216, “状态”: “成功”}

以上是关于加载所有html依赖文件:js,css与浏览器一样的主要内容,如果未能解决你的问题,请参考以下文章

网站发布到服务器 不能加载js和css

打开一个网站,加载顺序是啥?先加载HTML然后JS然后CSS?还是啥?

第十二篇 JavaScript(简称JS) 实现显示与隐藏

用原生JS实现的一个导航下拉菜单,下拉菜单的宽度与浏览器视口的宽度一样(js+html+css)

JS阻塞以及CSS阻塞

JS以及CSS对页面的阻塞