计算 javascript 中的 http 请求数
Counting the number of http requests in javascript
javascript中有没有办法计算网站对服务器的http请求数量?示例:在运行 apache tomcat 的本地网络服务器中,我有一个简单的 html 页面 helloworld.html带有 style.css 文件,所以当我输入"localhost:8080/helloworld.html"时,浏览器会执行两个请求,一个用于 helloworld.html一个用于 style.css。
我的目标是在helloworld上显示这个数字.html对于视频元素,当我播放它时,它会启动几个http到达网络服务器。
我在网上尝试了几天,但我什么也没找到。我找到了网络请求 api,但我认为只有 chrome 扩展程序可以使用它。我还找到了chrome.devtools.network API,但我只能在打开chrome开发工具时使用它。
使用HTML5提供的window.performance API,有一个简单的选项来找出页面加载的外部资源总数。
var totalNoOfResrouces = window.performance.getEntriesByType("resource").length;
没有简单的选择,例如查找图像,css,脚本等单个详细信息,但是如果您的所有资源URL都采用某种适当的格式,例如 http://example.com/img/sample.jpg,http://example.com/scripts/app.js 或 http://example.com/styles/master.css,您仍然可以找到这些
_.filter(window.performance.getEntriesByType("resource"),function(a){ return a.name.indexOf("/img/") > 0 });
注意:使用 _ 进行过滤。可以在不使用 _ 的情况下使用。此方法也有其自己的警告,例如它将仅返回成功的请求。挂起的资源不会列出
您可以手动计算<link>
和<script>
(对于没有 ajax 的简单页面)。
使用 JQuery:
var requestsNumber = 1; // The document itself.
$('link').each(function() {
var href = $(this).attr('href');
if (href && -1 === href.indexOf('http://')) {
requestNumber++;
}
});
$('script').each(function() {
var src = $(this).attr('src');
if (src && -1 === src.indexOf('http://')) {
requestNumber++;
}
});
这假设您正确使用相对 url。这不会给你任何响应状态(例如 404)。请注意,indexOf
不适用于 IE8。
- Meteor如何接收HTTP请求
- 在我的情况下,如何进行http请求
- 使用插件收听Firefox标签的http请求
- Angularjs http.get() Cross-Origin 请求被阻止
- http请求使用html而不是json进行响应
- 在node-js路由中发出http请求
- 通过sdk/system/events在修改请求观测器上测试http
- 是否可以在没有HTTP请求或<输入>
- Acync JS HTTP请求通知请求
- PhantomJs在控制台中发出http请求时不会返回任何状态
- 当我在chrome中切换设备模式时,$http.get请求失败
- PHP处理来自一个页面的http请求,并将其显示在另一个页面上
- 使用angular js通过代理服务器请求Http
- 如何从HTTPS服务器请求HTTP服务器的javascript文件
- 阻止的跨来源请求:http://api.fixer.io/latest.
- 坏的请求.HTTP POST到api
- 有没有办法为AngularJS JSON请求($http/$resource)使用浏览器缓存?
- angular js在每个http请求$http上添加请求参数
- 当从不存在的站点请求HTTP响应时,Node.js脚本会中断
- 通过代理服务器请求HTTP呼叫