使用AngularJS构建实时SignalR仪表板
让我们构建一个实时服务仪表板!
我们的服务仪表板将实时向我们显示真实数据。 它将以接近实时,异步,非阻塞的方式向我们展示服务器和微服务上发生的事情。
看看什么是完整的客户端可以像在这里 。
在这里可以看到服务器的演示。
我们将使用AngularJS框架和大量带有大量实时数据的实时图表来构建此仪表盘的较小版本。 我们还将使用.NET 4.5中的SignalR和Web API库来构建服务。
技术架构
客户端
AngularJS开箱即用地强制执行出色的应用程序开发实践。 一切都被注入了,这意味着依赖性的耦合度很低。 另外,Angular在视图,模型和控制器之间有很大的分隔。
Angular通过允许服务器端代码保持较小,可管理和可测试的方式来赞美.NET。 服务器端代码仅被利用来发挥其优势-这是繁重的工作。
服务器
将SignalR与用于.NET 4.5的Web API的使用非常类似于将Node.js与Socket.IO的使用,并且允许从服务器到订阅客户端的相同类型的非阻塞,异步推送。 SignalR在下面使用Web套接字,但是由于它抽象了通信,因此在Angular中运行时,它将退回到客户端浏览器支持的任何技术。 (例如,对于较旧的浏览器,它可能会回退到长时间轮询。)
此外,借助动态标签和Json.NET的魔力,.NET框架将JavaScript视为一流的公民。 实际上,在JavaScript中使用Web API和SignalR技术通常比通过本机.NET客户端更容易使用,因为它们是在考虑JavaScript的情况下构建的。
肉和土豆
进行设定
本教程中使用的所有AngularJS代码都可以在这里找到。
我将使用您最喜欢的文本编辑器和普通文件夹,以及用于创建项目的Visual Studio进行创建。
用纯文本文件设置
文件夹和文件结构如下所示:
rootapp (Angular application specific JavaScript)Content (CSS etc.)Scripts (Referenced JavaScript etc.)...index.html
主要依赖
您将需要下载以下文件:
- jQuery (选择“下载压缩的,生产版的jQuery 2.1.1”链接)
- AngularJS (单击大的下载选项,然后单击最新版本的Angular 1.3。+)
- 引导程序 (单击“下载引导程序”选项)
- SignalR (单击右侧的“下载ZIP”按钮)
- D3.js (点击页面下方的“ d3.zip”链接)
- 时代 (点击“下载v0.6.0链接”)
- ng-epoch (单击右侧的“下载ZIP”按钮)
- n3-pie (单击右侧的“下载ZIP”按钮)
在我们的Scripts
文件夹中,我们需要:
-
jquery-2.1.1.min.js
-
angular.min.js
-
bootstrap.min.js
-
jquery.signalR.min.js
-
d3.min.js
-
epoch.min.js
-
pie-chart.min.js
在我们的Content
文件夹中:
-
bootstrap.min.css
-
epoch.min.css
使用Visual Studio进行安装
如果文本文件对您来说过于简单,则通过Visual Studio进行设置非常简单。
只需通过转到File -> New -> Project
来设置一个空的Web应用程序,然后选择Web作为模板类型。
然后只需右键单击该项目,转到Manage Nuget Packages
并搜索并下载jQuery,AngularJS,Bootstrap,D3和SignalR JavaScript客户端。
下载并安装它们之后,您应该在Scripts和Contents文件夹中全部看到它们。 此外,在已安装的Nuget软件包下,您将看到以下内容:
最后,Nuget不包含Epoch,ng-epoch和n3图表库,因此您需要手动添加它们。 只需按照上一节中详述的步骤进行操作即可。
让我们来编写我们的应用程序
现在我们准备编写一些代码。
首先,让我们创建基本的index.html
文件,该文件将包含我们的Angular JavaScript代码。
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1"><title>AngularJS - SignalR - ServiceDashboard</title><link rel="stylesheet" href="Content/bootstrap.min.css" /><link rel="stylesheet" href="Content/epoch.min.css" /><script src="Scripts/jquery-1.11.0.js"></script><script src="Scripts/bootstrap.min.js"></script><script src="Scripts/jquery.signalR-2.1.2.min.js"></script><script src="Scripts/angular.min.js"></script><script src="Scripts/d3.min.js"></script><script src="Scripts/epoch.min.js"></script><script src="Scripts/ng-epoch.js"></script><script src="Scripts/pie-chart.min.js"></script><script src="app/app.js"></script><script src="app/services.js"></script><script src="app/directives.js"></script><script src="app/controllers.js"></script></head><body ng-app="angularServiceDashboard"></body>
</html>
这里发生了一些事情。 首先,我们要添加所有依赖项,以便它们加载。 其次,我们引用了一些尚不存在的新文件(app文件夹中的所有文件)。 接下来我们将写这些。
让我们进入我们的app文件夹并创建我们的app.js
文件。 这是一个非常简单的文件。
'use strict';var app = angular.module('angularServiceDashboard', ['ng.epoch','n3-pie-chart']);
app.value('backendServerUrl', 'http://sitepointsignal.cloudapp.net/');
该文件为我们做一些事情。 它设置了我们的主要应用程序模块angularServiceDashboard
并注入了两个外部引用ng.epoch
(这是我们针对Angular的Epoch.js指令)和n3-pie-chart
(这是为Angular制作的图表库),结构化的。
如果您注意到了,我们还为backendServerUrl
注入了一个值,该值当然托管在其他地方,我们计划在这里使用。
让我们创建一个将绑定到服务器URL的服务工厂类。 这将是我们在HTML中引用的services.js
文件,它将进入app文件夹:
'use strict';app.factory('backendHubProxy', ['$rootScope', 'backendServerUrl', function ($rootScope, backendServerUrl) {function backendFactory(serverUrl, hubName) {var connection = $.hubConnection(backendServerUrl);var proxy = connection.createHubProxy(hubName);connection.start().done(function () { });return {on: function (eventName, callback) {proxy.on(eventName, function (result) {$rootScope.$apply(function () {if (callback) {callback(result);}});});},invoke: function (methodName, callback) {proxy.invoke(methodName).done(function (result) {$rootScope.$apply(function () {if (callback) {callback(result);}});});}};};return backendFactory;
}]);
这段代码使用了流行的on
和off
(无需关闭,因为我们在这里不需要它)订阅模式,并使用Angular工厂为我们的应用封装了与SignalR的所有通信。
最初,这段代码似乎有些让人不知所措,但是当我们构建控制器时,您会更好地理解它。 它所做的只是输入我们后端SignalR服务器的URL和SignalR集线器名称。 (在SignalR中,您可以使用同一服务器中的多个集线器来推送数据。)
此外,此代码还允许位于其他位置的SignalR Server通过on
方法调用我们的应用程序。 它允许我们的应用通过invoke
方法在SignalR Server内部调用函数。
接下来,我们需要控制器,它将控制器中的数据绑定到我们的范围。 让我们在应用程序文件夹中创建一个名为controllers.js
的文件。
'use strict';app.controller('PerformanceDataController', ['$scope', 'backendHubProxy',function ($scope, backendHubProxy) {console.log('trying to connect to service')var performanceDataHub = backendHubProxy(backendHubProxy.defaultServer, 'performanceHub');console.log('connected to service')$scope.currentRamNumber = 68;performanceDataHub.on('broadcastPerformance', function (data) {data.forEach(function (dataItem) {switch(dataItem.categoryName) {case 'Processor':break;case 'Memory':$scope.currentRamNumber = dataItem.value;break;case 'Network In':break;case 'Network Out':break;case 'Disk Read Bytes/Sec':break;case 'Disk Write Bytes/Sec':break;default://default code blockbreak; }}); });}
]);
这个控制器在这里做一些事情。 它创建了我们的Angular Service对象并绑定了一个回调函数,以便服务器在我们的控制器中可以调用一些东西。
您将看到,每次服务器回叫我们时,我们都在遍历服务器返回的JSON数组。 然后,对于每种性能类型,我们都有一个switch语句。 现在,我们将设置RAM并重新整理其余部分。
就我们的指令而言,我们的Epoch图实际上只需要一个。 我们将使用一个名为ng-epoch.js
的开源指令,该指令已经在存根index.html
文件中提供了引用。
我们可以将所有这些图表拆分为不同的指令,使用一些模板并使用UI-Router ,但是我们将在这里保持简单,并将所有视图转储到我们的index.html
文件中。
现在,将我们的视图添加到index.html
文件中。 为此,我们可以在body标签下添加以下内容:
<div class="row" ng-controller="PerformanceDataController"><div class="col-lg-3 col-md-6"><div class="panel panel-dashboard"><div class="center">Memory Performance</div><div class="panel-body"><div class="huge">{{currentRamNumber}}</div><div class="clearfix"></div></div></div></div></div>
</div>
这只会为服务器创建一个回推RAM数据的地方。 数据将首先进入我们的服务,然后进入控制器,最后到达视图。
它看起来应该像这样:
现在让我们添加一些图表,这是我们真正想要做的。 我们将为epoch.js
时间轴添加一个名为timestamp
的变量。 我们还将添加一个称为chartEntry
的数组,该数组将绑定到我们的epoch.ng
指令。
var timestamp = ((new Date()).getTime() / 1000) | 0;
var chartEntry = [];
然后,让我们在switch
语句中映射数据,并添加其余必需的epoch.js
数据项。 当然,我们可以进一步扩展(例如使用更多的函数和过滤器),但是为了使本教程更简单。
'use strict';app.controller('PerformanceDataController', ['$scope', 'backendHubProxy',function ($scope, backendHubProxy) {...$scope.currentRamNumber = 68;$scope.realtimeArea = [{ label: 'Layer 1', values: [] }];performanceDataHub.on('broadcastPerformance', function (data) {var timestamp = ((new Date()).getTime() / 1000) | 0;var chartEntry = [];data.forEach(function (dataItem) {switch(dataItem.categoryName) {case 'Processor':$scope.cpuData = dataItem.value;chartEntry.push({ time: timestamp, y: dataItem.value });console.log(chartEntry)break;case 'Memory':$scope.currentRamNumber = dataItem.value;break;case 'Network In':break;case 'Network Out':break;case 'Disk Read Bytes/Sec':break;case 'Disk Write Bytes/Sec':break;default://default code blockbreak;}});$scope.realtimeAreaFeed = chartEntry;});$scope.areaAxes = ['left','right','bottom'];}
]);
我们的控制器看起来更加充实了。 我们向范围添加了一个realtimeAreaFeed
,我们将通过ng-epoch
指令将其绑定到我们的视图,并且我们还向区域添加了areaAxes
,该区域决定了面积图的布局。
现在,将指令添加到index.html
并显示输入的CPU值数据:
<div class="row" ng-controller="PerformanceDataController"><div class="panel-body" ng-controller="PerformanceDataController"><epoch-live-area chart-class="category10" chart-height="200" chart-data="realtimeArea" chart-stream="realtimeAreaFeed" chart-axes="areaAxes"></epoch-live-area></div>
</div>
chart-class
是指D3.js的配色方案, chart-height
是您所怀疑的颜色, chart-stream
是从SignalR服务器返回的数据。
有了这些,我们应该可以实时看到图表:
现在让我们将大量数据点连接到此图表,并从n3-pie框架中添加其他整个图表(因为谁不喜欢派!)。
要从n3-pie框架添加饼图,只需将以下内容添加到我们的控制器中:
$scope.data = [{ label: 'CPU', value: 78, color: '#d62728', suffix: '%' }
];
当然,该value
将由SignalR服务器更新。 您可以在控制器的完整代码中看到这一点。
我们还应该花点时间考虑一下完整的代码以获取我们的观点 。
而且我们应该在屏幕上看到以下数据:
我们已经看到,Angular可以非常容易地连接到SignalR –通过简单地将端点插入AngularJS服务或工厂即可。 AngularJS工厂是一种与SignalR通信的封装机制。 谁知道AngularJS和.NET在“结婚”时会很好地协同工作?
服务器的核心方面
我将介绍一些.NET代码,该代码可以在后端进行通信。 (您可以在此处找到源代码。)
首先开始构建服务器代码,您需要在Visual Studio解决方案中运行SignalR。 为此,只需遵循ASP.NET上的出色教程,即可运行基本的SignalR解决方案。 ( 这是最简单的一个。)
一旦启动并运行,将C# Hub
类更改为以下内容:
public class PerformanceHub : Hub
{public void SendPerformance(IList<PerformanceModel> performanceModels){Clients.All.broadcastPerformance(performanceModels);}public void Heartbeat(){Clients.All.heartbeat();}public override Task OnConnected(){return (base.OnConnected());}
}
一旦更改了Hub
类,Visual Studio就会抱怨,您将需要添加一个性能模型(由于Json.NET,它会在服务器推出时自动转换为JSON):
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Newtonsoft.Json;namespace SignalrWebService.Models
{public class PerformanceModel{[JsonProperty("machineName")]public string MachineName { get; set; }[JsonProperty("categoryName")]public string CategoryName { get; set; }[JsonProperty("counterName")]public string CounterName { get; set; }[JsonProperty("instanceName")]public string InstanceName { get; set; }[JsonProperty("value")]public double Value { get; set; }}
}
JsonProperty
元数据只是告诉Json.NET在将此模型转换为JSON时自动将属性名称转换为小写。 JavaScript喜欢小写。
让我们添加一个PerformanceEngine
类,该类将推送给将收听真实性能数据的任何人。 引擎通过SignalR将这些消息发送到异步后台线程上的所有侦听客户端。
由于篇幅太长,您可以在我们的GitHub repo上找到代码 。
此代码基本上推动性能度量的阵列出到在每个订阅任何人while
迭代。 这些性能指标被注入到构造函数中。 从服务器推送的速度在构造函数参数pollIntervalMillis
。
请注意,如果您要使用OWIN作为自托管主机托管SignalR,则此方法会正常工作;如果您使用网络工作者,则应可以正常工作。
当然,最后要做的是在服务OnStart()
或Startup
类中的某个地方启动后台线程。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Owin;
using System.Threading.Tasks;
using Microsoft.Owin;
using SignalrWebService.Performance;
using Microsoft.Owin.Cors;
using Microsoft.AspNet.SignalR;
using SignalrWebService.Models;[assembly: OwinStartup(typeof(SignalrWebService.Startup))]namespace SignalrWebService
{public class Startup{public void Configuration(IAppBuilder app){app.UseCors(CorsOptions.AllowAll);var hubConfiguration = new HubConfiguration();hubConfiguration.EnableDetailedErrors = true;app.MapSignalR(hubConfiguration);PerformanceEngine performanceEngine = new PerformanceEngine(800, GetRequiredPerformanceMonitors());Task.Factory.StartNew(async () => await performanceEngine.OnPerformanceMonitor());}}
}
在后台线程上启动监视的两行(我敢肯定您已经猜到了)是我们实例化PerformanceEngine
和调用OnPerformanceMonitor()
。
现在,我知道您可能会认为我正在将服务器中的数据随机化,这是事实。 但是要推送实际指标,只需使用Windows提供的System.Diagnostics
库和PerformanceCounter
。 我正在尝试保持简单,但是代码如下所示:
public static readonly IEnumerable<PerformanceCounter> ServiceCounters = new[]
{//http://weblogs.thinktecture.com/ingo/2004/06/getting-the-current-process-your-own-cpu-usage.htmlnew PerformanceCounter("Processor Information", "% Processor Time", "_Total"),new PerformanceCounter("Memory", "Available MBytes"),new PerformanceCounter("Process", "% Processor Time", GetCurrentProcessInstanceName(), true),new PerformanceCounter("Process", "Working Set", GetCurrentProcessInstanceName(), true)
};
结论
我们已经看到了如何通过Angular来使用SignalR数据,并且已经将该数据连接到了Angular的实时图表框架上。
可以在此处看到客户端最终版本的演示,您可以从此处获取代码。
可以在此处看到服务器最终版本的演示,您可以从此处获取代码。
希望您喜欢这个演练。 如果您尝试过类似的操作,请在评论中告诉我们!
From: https://www.sitepoint.com/build-real-time-signalr-dashboard-angularjs/
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
相关文章
- HighChar 详解-双Y轴-及各
网上的例子,数据都是写死的,有点不实用吧 我在这里举一个,展示功能需求的数据。按需从数据库获取并画图展示 (本例子结合 angular.js,其他前台框架同理 从后台获取数据即可) 1.首先要引入Jquery.JS,再引入相关highC…...
2024/4/20 16:24:54 - Augular初探
一年多前,巧遇angular,觉得是个非常优秀的mv*框架,当时项目使用了MooTools.因此也没继续研究。刚好最近,同事组中有用到ng,并且要做个分享。因此就将from Why Does Angular.js Rock? 重新看了遍,加之中文的翻译有点问…...
2024/4/30 15:59:26 - AngularJS 为什么如此火呢?
在本文中让我们来逐步发掘angular为什么如此火: AngularJS是一个MV*(Model-View-Whatever,不管是MVC或者MVVM,统归MDV(model Drive View))JavaScript框架,其是Google推出的SPA(single-page-appl…...
2024/4/20 16:24:53 - web端基本技术点整理
1 WEB端概述 1.1 前端框架演变 https://blog.csdn.net/bjweimengshu/article/details/79563440 1.2 技术概览 https://blog.csdn.net/fighting_no1/article/details/79599806 1.3 学习路线 https://blog.csdn.net/zwjweb/article/details/78704342 https://blog.csdn.net/zwjwe…...
2024/4/20 16:24:51 - Dev使用checkedListBoxControl
checkedListBoxControl使用list的值成复选框的值://方式一:循环list添加for (int i = 0; i < list.Count; i++){ checkedListBoxControl1.Items.Add(list[i]);} //方式二:资源绑定的方式 checkedListBoxControl1.DataSource = list;一键批量勾选,主要用于全选,选不选,反…...
2024/4/20 16:24:50 - echarts 使用问题
总结下使用echarts的使用echarts 真的很好! 1 折线图line 1)有时出现赋值后,坐标轴显示数量比应该显示的少,是因为 显示不开,导致部分不显示(可通过调整字体大小等方式解决) 2)纵坐标轴制定最高值,可…...
2024/4/20 16:24:51 - 苏州双眼皮修复紫馨驰名r
...
2024/5/3 13:28:56 - 苏州双眼皮价格紫馨驰名r
...
2024/4/21 12:31:25 - 苏州爱思特做一个苏州切双眼皮紫馨驰名r
...
2024/4/21 12:31:25 - React 组件 Props
组件,从概念上类似于 JavaScript 函数。它接受任意的入参(即 “props”),并返回用于描述页面展示内容的 React 元素。 函数组件与 class 组件 定义组件最简单的方式就是编写 JavaScript 函数: function Hello(props…...
2024/4/21 12:31:23 - 100天学会VR游戏开发
最近看了一篇关于VR的文章,没事干就在翻译,希望对其他人有所帮助。 第一次翻译,不足的地方还请包含和纠正。 原文链接:https://medium.com/@skynite/100-days-of-vr-game-dev-c471afeb240e#.on84bgpk1 在这里感谢作者的辛苦成果。100天学会VR游戏开发(第1-21天)几个月前,…...
2024/5/3 11:14:09 - 形容扇形双眼皮好看
...
2024/4/21 12:31:21 - 上海双眼皮精益6华美
...
2024/4/21 12:31:20 - 广州双眼皮 推选美来
...
2024/4/26 11:33:25 - .prettierrc文件常见配置
{"semi": false, // 使用分号, 默认true"singleQuote": true, // 使用单引号, 默认false(在jsx中配置无效, 默认都是双引号)"bracketSpacing": true // 对象中的空格 默认true }...
2024/4/21 12:31:18 - ESLint的一些配置项解读
example-one eslint完整的校验规则可以访问这里! 1. 安装eslint:$ npm install eslint –save-dev 2. 使用eslint –init生成一个配置文件 { <!--环境定义了预定义的全局变量-->"env": {<!--浏览器的全局变量-->"browser&q…...
2024/4/21 12:31:17 - 关闭令人抓狂的ESlint 语法检测配置方法
刚刚开始的小伙伴是不是空格报错少一行报错各种错?是不是觉得快被限制的失去了自由的思绪了?受折磨后找到了不错的文章来取消eslint语法检测限制,作为学习笔记摘自segmentfault 其实我并不反对这些语法检测,但是像许多反个人意愿的…...
2024/5/3 17:32:34 - Vue,什么是Vue及Vue.js基本指令
什么是Vue 是目前最火的前端框架,React是最流行的一个前端框架 (React除了开发网站,还可以开发手机App,Vue语法也可以用户进行手机App开发的,需要借助于Weex) vue.js是前端主流框架之一,和Angular.js、React.js一起&a…...
2024/4/21 12:31:15 - Angular 学习系列 - - filter 过滤器
Filter Ng里的过滤器。 currency:把一个数字格式化成货币模式(如$1,234.56)。当没有提供任何货币符号时,默认使用当前区域的符号。 使用: HTML:{{ currency_expression | currency:symbol:fractionSize}} J…...
2024/4/20 16:25:05 - 修改Ng Alain模板的nz-tab和st表格组件默认样式
修改angular Ng Alain模板的默认样式 在less文件中直接写样式是不起作用的,想要更改模版自带的样式,需要用 :host ::ng-deep {} 包裹样式代码。 例如:如下代码可以调整nz-tab切换组件中间的距离。 :host ::ng-deep {.ant-tabs-large > .…...
2024/4/20 16:25:03
最新文章
- 【C++】滑动窗口:最大连续1的个数
1.题目 2.算法思路 其实在做这道题的时候并不需要真的把0翻转成1,只需要找到最长的子数组且该子数组中0的个数不大于K,就可以了! 当然我们首先想到的是暴力穷举法: 找到所有符合题意的子数组,跳出最长的那个就可以了…...
2024/5/3 20:12:46 - 梯度消失和梯度爆炸的一些处理方法
在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言,在此感激不尽。 权重和梯度的更新公式如下: w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...
2024/3/20 10:50:27 - 24 个Intellij IDEA好用插件
24 个Intellij IDEA好用插件 一. 安装插件 Codota 代码智能提示插件 只要打出首字母就能联想出一整条语句,这也太智能了,还显示了每条语句使用频率。 原因是它学习了我的项目代码,总结出了我的代码偏好。 Key Promoter X 快捷键提示插件 …...
2024/5/1 14:08:40 - 基于.NET Core开发的轻量级分布式配置中心
前言 今天给大家推荐一个基于.NET Core开发的轻量级分布式配置中心:AgileConfig。 AgileConfig官方介绍 AgileConfig秉承轻量化的特点,部署简单、配置简单、使用简单、学习简单,它只提取了必要的一些功能,并没有像Apollo那样复…...
2024/5/2 16:04:39 - 【外汇早评】美通胀数据走低,美元调整
原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...
2024/5/1 17:30:59 - 【原油贵金属周评】原油多头拥挤,价格调整
原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...
2024/5/2 16:16:39 - 【外汇周评】靓丽非农不及疲软通胀影响
原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...
2024/4/29 2:29:43 - 【原油贵金属早评】库存继续增加,油价收跌
原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...
2024/5/2 9:28:15 - 【外汇早评】日本央行会议纪要不改日元强势
原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...
2024/4/27 17:58:04 - 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响
原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...
2024/4/27 14:22:49 - 【外汇早评】美欲与伊朗重谈协议
原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...
2024/4/28 1:28:33 - 【原油贵金属早评】波动率飙升,市场情绪动荡
原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...
2024/4/30 9:43:09 - 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试
原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...
2024/4/27 17:59:30 - 【原油贵金属早评】市场情绪继续恶化,黄金上破
原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...
2024/5/2 15:04:34 - 【外汇早评】美伊僵持,风险情绪继续升温
原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...
2024/4/28 1:34:08 - 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势
原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...
2024/4/26 19:03:37 - 氧生福地 玩美北湖(上)——为时光守候两千年
原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...
2024/4/29 20:46:55 - 氧生福地 玩美北湖(中)——永春梯田里的美与鲜
原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...
2024/4/30 22:21:04 - 氧生福地 玩美北湖(下)——奔跑吧骚年!
原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...
2024/5/1 4:32:01 - 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!
原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...
2024/4/27 23:24:42 - 「发现」铁皮石斛仙草之神奇功效用于医用面膜
原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...
2024/4/28 5:48:52 - 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者
原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...
2024/4/30 9:42:22 - 广州械字号面膜生产厂家OEM/ODM4项须知!
原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...
2024/5/2 9:07:46 - 械字号医用眼膜缓解用眼过度到底有无作用?
原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...
2024/4/30 9:42:49 - 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...
解析如下:1、长按电脑电源键直至关机,然后再按一次电源健重启电脑,按F8健进入安全模式2、安全模式下进入Windows系统桌面后,按住“winR”打开运行窗口,输入“services.msc”打开服务设置3、在服务界面,选中…...
2022/11/19 21:17:18 - 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。
%读入6幅图像(每一幅图像的大小是564*564) f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...
2022/11/19 21:17:16 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...
win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面,在等待界面中我们需要等待操作结束才能关机,虽然这比较麻烦,但是对系统进行配置和升级…...
2022/11/19 21:17:15 - 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...
有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows,请勿关闭计算机”的提示,要过很久才能进入系统,有的用户甚至几个小时也无法进入,下面就教大家这个问题的解决方法。第一种方法:我们首先在左下角的“开始…...
2022/11/19 21:17:14 - win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...
置信有很多用户都跟小编一样遇到过这样的问题,电脑时发现开机屏幕显现“正在配置Windows Update,请勿关机”(如下图所示),而且还需求等大约5分钟才干进入系统。这是怎样回事呢?一切都是正常操作的,为什么开时机呈现“正…...
2022/11/19 21:17:13 - 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...
Win7系统开机启动时总是出现“配置Windows请勿关机”的提示,没过几秒后电脑自动重启,每次开机都这样无法进入系统,此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一:开机按下F8,在出现的Windows高级启动选…...
2022/11/19 21:17:12 - 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...
有不少windows10系统用户反映说碰到这样一个情况,就是电脑提示正在准备windows请勿关闭计算机,碰到这样的问题该怎么解决呢,现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法:1、2、依次…...
2022/11/19 21:17:11 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...
今天和大家分享一下win7系统重装了Win7旗舰版系统后,每次关机的时候桌面上都会显示一个“配置Windows Update的界面,提示请勿关闭计算机”,每次停留好几分钟才能正常关机,导致什么情况引起的呢?出现配置Windows Update…...
2022/11/19 21:17:10 - 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...
只能是等着,别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚,只能是考虑备份数据后重装系统了。解决来方案一:管理员运行cmd:net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...
2022/11/19 21:17:09 - 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?
原标题:电脑提示“配置Windows Update请勿关闭计算机”怎么办?win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢?一般的方…...
2022/11/19 21:17:08 - 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...
关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!关机提示 windows7 正在配…...
2022/11/19 21:17:05 - 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...
钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...
2022/11/19 21:17:05 - 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...
前几天班里有位学生电脑(windows 7系统)出问题了,具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面,长时间没反应,无法进入系统。这个问题原来帮其他同学也解决过,网上搜了不少资料&#x…...
2022/11/19 21:17:04 - 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...
本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法,并在最后教给你1种保护系统安全的好方法,一起来看看!电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中,添加了1个新功能在“磁…...
2022/11/19 21:17:03 - 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...
许多用户在长期不使用电脑的时候,开启电脑发现电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机。。.这要怎么办呢?下面小编就带着大家一起看看吧!如果能够正常进入系统,建议您暂时移…...
2022/11/19 21:17:02 - 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...
配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!配置windows update失败 还原更改 请勿关闭计算机&#x…...
2022/11/19 21:17:01 - 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...
不知道大家有没有遇到过这样的一个问题,就是我们的win7系统在关机的时候,总是喜欢显示“准备配置windows,请勿关机”这样的一个页面,没有什么大碍,但是如果一直等着的话就要两个小时甚至更久都关不了机,非常…...
2022/11/19 21:17:00 - 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...
当电脑出现正在准备配置windows请勿关闭计算机时,一般是您正对windows进行升级,但是这个要是长时间没有反应,我们不能再傻等下去了。可能是电脑出了别的问题了,来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...
2022/11/19 21:16:59 - 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...
我们使用电脑的过程中有时会遇到这种情况,当我们打开电脑之后,发现一直停留在一个界面:“配置Windows Update失败,还原更改请勿关闭计算机”,等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢࿰…...
2022/11/19 21:16:58 - 如何在iPhone上关闭“请勿打扰”
Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...
2022/11/19 21:16:57