WPF真入门教程27--项目案例--设备数据实时监测

news2024/9/27 5:51:54

1、上图看效果

今天要做的一个案例是这样的效果,它能实时监测车间设备有关数据,并以表格和图形显示在界面上,这个比上个案例要复杂些,颜值也高些,通过这个来巩固wpf的技能,用到了命令绑定,样式资源,表格数据,图形控件livechart。将前面25的内容熟悉起来,就可以自己动手做这个案例了。

2、创建wpf项目

 

3、 UI布局分析

整个界面是一个表格,表格分二行,第一行是标题栏,第二行是数据栏,

第二行分2列,第1列放表格控件,第2列放图形控件

第一行分7列,放7个控件

 

1、 第一行

2、第二行

 

 

WPF中的布局是表格布局风格,通过一个个的细化组合形成UI,完整代码如下,大家可以仔细看看,注释都有,仔细体会下,不算难:

<Window x:Class="OmRonMesWPFApp.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:OmRonMesWPFApp.ViewModel"
         xmlns:lvc="clr-namespace:LiveCharts.Wpf;assembly=LiveCharts.Wpf" 
       FontSize="12" FontFamily="Microsoft YaHei" FontWeight="ExtraLight" Title="煅烧车间运行监测" Height="740" Width="1300" WindowStartupLocation="CenterScreen" Name="loginWin"   >
    <Window.DataContext>
        <local:MainViewModel/>
    </Window.DataContext>
    <Grid Background="Honeydew" ShowGridLines="true">
        <Grid.RowDefinitions>
            <RowDefinition Height="40"/>
            <RowDefinition/>
        </Grid.RowDefinitions>
        <!--第一行标题-->
        <Grid Grid.Row="0" Margin="0" Background="CornflowerBlue" >
            <Grid.ColumnDefinitions>
                <ColumnDefinition  />
                <ColumnDefinition  />
                <ColumnDefinition  />
                <ColumnDefinition  />
                <ColumnDefinition  />
                <ColumnDefinition  />
                <ColumnDefinition  />
            </Grid.ColumnDefinitions>
            <TextBlock Grid.Column="0" Text="PLC地址" Style="{StaticResource  txtTextBlockStyle}" HorizontalAlignment="Center"/>
            <TextBox  Grid.Column="1"   VerticalContentAlignment="Center"  Text="{Binding HostName}" Style="{StaticResource  txtTextBoxStyle}"   />
            <TextBlock Grid.Column="2" Text="端口号" Style="{StaticResource  txtTextBlockStyle}" HorizontalAlignment="Center"/>
            <TextBox Grid.Column="3"   VerticalContentAlignment="Center"  Text="{Binding HostPort}"   Style="{StaticResource  txtTextBoxStyle}" />
            <Button Grid.Column="4" Content="连 接"  Style="{StaticResource btnBaseStyle}"     Command="{Binding LoginCommand}" CommandParameter="{Binding ElementName=loginWin}" />
            <Button Grid.Column="5" Content="断 开"   Style="{StaticResource btnBaseStyle}"  />
            <TextBlock Grid.Column="6" FontSize="19" Text="{Binding ConnectWords,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" HorizontalAlignment="Center" Style="{StaticResource  txtTextBlockStyle}"   Foreground="White"/>
        </Grid>
        <!--第二行信息-->
        <Grid Grid.Row="1" Margin="0 10 0 0">
            <Grid.ColumnDefinitions>
                <!--所占百分比50%-->
                <ColumnDefinition Width="45*"  />
                <ColumnDefinition Width="55*"   />
            </Grid.ColumnDefinitions>
            <!--第1列布局:数据列表-->
            <DataGrid Name="gridCustomers" Margin="10 5 5 5"  Grid.Column="0" ItemsSource="{Binding HouseList}"  SelectedItem="{Binding CurrentItem}"   Style="{StaticResource dgStyle}">
                <DataGrid.Columns>
                    <!--绑定视图模型中的CustInfo对象各个属性-->
                    <DataGridTextColumn Binding="{Binding Id}" Header="序号"  IsReadOnly="True"  ElementStyle="{StaticResource textColStyleLeft}" Width="70" />
                    <DataGridTextColumn Binding="{Binding Name}" Header="名称"  IsReadOnly="True"  ElementStyle="{StaticResource textColStyleLeft}" Width="110" />
                    <DataGridTextColumn Binding="{Binding Temperature}" Header="温度"  IsReadOnly="True"   ElementStyle="{StaticResource textColStyleLeft}"  Width="110"/>
                    <DataGridTextColumn Binding="{Binding Waterlevel}" Header="水位"   IsReadOnly="True" ElementStyle="{StaticResource textColStyleLeft}" Width="110" />
                    <DataGridTextColumn Binding="{Binding Speed}" Header="转速"  IsReadOnly="True"  ElementStyle="{StaticResource textColStyleLeft}"  Width="110"/>
                    <DataGridTextColumn Binding="{Binding Corner}" Header="转角"  IsReadOnly="True"  ElementStyle="{StaticResource textColStyleLeft}"  Width="110" />
                    <DataGridTextColumn Binding="{Binding Inserttime,StringFormat='yyyy年MM月dd日HH时mm分'}" Header="创建时间"  IsReadOnly="True"  ElementStyle="{StaticResource textColStyleLeft}" Width="*" />
                </DataGrid.Columns>
            </DataGrid>
            <!--第2列布局:图形列表-->
            <Grid Grid.Column="1" >
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="641*"/>
                    <ColumnDefinition Width="74*"/>
                </Grid.ColumnDefinitions>
                <!--柱状图-->
                <!--LegendLocation图例位置,Series序列绑定vm中的HouseSeriesList属性 -->
                <lvc:CartesianChart Series="{Binding HouseSeriesList}" LegendLocation="Top" Margin="10,10,10,10" Grid.ColumnSpan="2">
                    <!--X坐标-->
                    <lvc:CartesianChart.AxisX>
                        <lvc:Axis Labels="{Binding Labels}" FontSize="14" Position="LeftBottom" Foreground="Black" >
                            <!--分隔线-->
                            <lvc:Axis.Separator>
                                <lvc:Separator Stroke="LightBlue" StrokeThickness="2"/>
                            </lvc:Axis.Separator>
                        </lvc:Axis>
                    </lvc:CartesianChart.AxisX>
                    <!--Y坐标-->
                    <lvc:CartesianChart.AxisY>
                        <lvc:Axis Title="最新运行数据"  FontSize="14" Position="LeftBottom" Foreground="DarkSlateBlue" ShowLabels="True">
                            <lvc:Axis.Separator>
                                <lvc:Separator Step="4" Stroke="LightBlue" StrokeThickness="1"/>
                            </lvc:Axis.Separator>
                        </lvc:Axis>
                    </lvc:CartesianChart.AxisY>
                </lvc:CartesianChart>
            </Grid>
        </Grid>
    </Grid>
</Window>

3、样式资源

样式文件就是WEB中的css属性设置,需要精细的考虑,软件的界面就是一个人的颜值,可以看看,用的时候改改。

 

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <!--定义通用的按钮样式-->
    <Style TargetType="{x:Type Button}" x:Key="btnBaseStyle">
        <Setter Property="Height" Value="30"/>
        <Setter Property="Width" Value="90"/>
        <Setter Property="FontFamily" Value="微软雅黑"/>
        <Setter Property="Margin" Value="3,0"/>
        <Setter Property="FontSize" Value="16"/>
        <Setter Property="FontWeight" Value="Bold"/>
        <Setter Property="Foreground"  Value="Blue"/>
        <!--模板的样式-->
        <Setter Property="Template">
            <Setter.Value>
                <!--Button按钮样式-->
                <ControlTemplate TargetType="Button">
                    <Grid >
                        <Border Background="{TemplateBinding Background}" CornerRadius="13" >
                            <TextBlock Margin="10 5 10 5" Text="{TemplateBinding Content}" FontSize="{TemplateBinding FontSize}" HorizontalAlignment="Center" VerticalAlignment="Center"></TextBlock>
                        </Border>
                    </Grid>
                    <ControlTemplate.Triggers>
                        <!--鼠标放上去时的触发器-->
                        <Trigger Property="IsMouseOver" Value="True">
                            <Setter Property="Background" Value="White" ></Setter>
                        </Trigger>
                    </ControlTemplate.Triggers>

                </ControlTemplate>
            </Setter.Value>
        </Setter> 
    </Style>

    <!--TextBox默认样式-->
    <Style TargetType="{x:Type TextBox}" x:Key="txtTextBoxStyle">
        <Setter Property="Width" Value="150"/>
        <Setter Property="Height" Value="20"/>
        <Setter Property="BorderBrush" Value="#FF105190"/>
        <Setter Property="BorderThickness" Value="1"/>
        <Setter Property="Margin" Value="2,0"/>
        <Setter Property="VerticalContentAlignment" Value="Center"/>
        <Setter Property="Background">
            <Setter.Value>
                <LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
                    <GradientStop Color="White" Offset="0"/>
                    <GradientStop Color="#FFE4E4E4" Offset="1"/>
                </LinearGradientBrush>
            </Setter.Value>
        </Setter>
    </Style>

    <!--TextBlock默认样式-->
    <Style TargetType="{x:Type TextBlock}" x:Key="txtTextBlockStyle">
        <Setter Property="Margin" Value="1"/>
        <Setter Property="Height" Value="24"/>
        <Setter Property="Foreground" Value="White"/>
        <Setter Property="FontSize" Value="20"></Setter>
    </Style>

    <!--页面下拉框样式-->
    <LinearGradientBrush x:Key="ComboBox.Static.Background" EndPoint="0,1" StartPoint="0,0">
        <GradientStop Color="White" Offset="0"/>
        <GradientStop Color="#FFE4E4E4" Offset="1"/>
    </LinearGradientBrush>
    <SolidColorBrush x:Key="ComboBox.Static.Border" Color="#FF105190"/>

    <!--combox默认样式-->
    <Style x:Key="cboStyle" TargetType="{x:Type ComboBox}">
        <Setter Property="Background" Value="{StaticResource ComboBox.Static.Background}"/>
        <Setter Property="BorderBrush" Value="{StaticResource ComboBox.Static.Border}"/>
        <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.WindowTextBrushKey}}"/>
        <Setter Property="Width" Value="150"/>
        <Setter Property="Height" Value="25"/>
        <Setter Property="BorderThickness" Value="1"/>
        <Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Auto"/>
        <Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Auto"/>
        <Setter Property="Padding" Value="6,3,5,3"/>
        <Setter Property="ScrollViewer.CanContentScroll" Value="true"/>
        <Setter Property="ScrollViewer.PanningMode" Value="Both"/>
        <Setter Property="Stylus.IsFlicksEnabled" Value="False"/>
    </Style>
</ResourceDictionary>

 

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <!--所有datagrid控件页面的样式-->
    <Style TargetType="TextBlock" x:Key="textColStyleCenter">
        <Setter Property="VerticalAlignment" Value="Center"/>
        <Setter Property="TextAlignment" Value="Center"/>
    </Style>
    <Style TargetType="TextBlock" x:Key="textColStyleLeft">
        <Setter Property="VerticalAlignment" Value="Center"/>
        <Setter Property="TextAlignment" Value="Left"/>
        <Setter Property="Padding" Value="5,0"/>
    </Style>
    <Style TargetType="CheckBox" x:Key="chkColStyle">
        <Setter Property="VerticalAlignment" Value="Center"/>
        <Setter Property="HorizontalAlignment" Value="Center"/>
    </Style>
    
    <!--dg表格行的样式-->
    <Style TargetType="{x:Type DataGridRow}" x:Key="dgRowStyle">
        <Setter Property="Background" Value="Transparent"/>
        <Setter Property="VerticalContentAlignment" Value="Center"/>
        <Style.Triggers>
            <Trigger Property="ItemsControl.AlternationIndex" Value="0">
                <Setter Property="Background" Value="#FFD5EFF7"/>
            </Trigger>
            <Trigger Property="ItemsControl.AlternationIndex" Value="1">
                <Setter Property="Background" Value="#FFFBFCF9"/>
            </Trigger>
            <Trigger Property="IsMouseOver" Value="True">
                <Setter Property="Background">
                    <Setter.Value>
                        <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                            <GradientStop Color="#FF73BCE8" Offset="0.98"/>
                            <GradientStop Color="White" Offset="0"/>
                        </LinearGradientBrush>
                    </Setter.Value>
                </Setter>
            </Trigger>
            <Trigger Property="IsSelected" Value="True">
                <Setter Property="Background">
                    <Setter.Value>
                        <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                            <GradientStop Color="#FF5C8DE0" Offset="0.98"/>
                            <GradientStop Color="White" Offset="0"/>
                        </LinearGradientBrush>
                    </Setter.Value>
                </Setter>
            </Trigger>
        </Style.Triggers>
    </Style>
    
    <!--dg表格列的样式-->
    <Style x:Key="colStyle"  TargetType="DataGridColumnHeader">
        <Setter Property="FontWeight" Value="Bold"/>
        <Setter Property="Foreground" Value="#FF7C6BE0"/>
    </Style>
     
    
    <!--dg表格样式-->
    <Style TargetType="DataGrid" x:Key="dgStyle">
        <Setter Property="HorizontalAlignment" Value="Stretch"/>
        <Setter Property="AutoGenerateColumns" Value="False"/>
        <Setter Property="SelectionMode" Value="Extended"/>
        <Setter Property="VerticalAlignment" Value="Stretch"/>
        <Setter Property="CanUserAddRows" Value="False"/>
        <Setter Property="RowHeaderWidth" Value="20"/>
        <Setter Property="HeadersVisibility" Value="Column"/>
        <!--隔行显示-->
        <Setter Property="AlternationCount" Value="2"/>
        <Setter Property="HorizontalScrollBarVisibility" Value="Auto"/>
        <Setter Property="VerticalScrollBarVisibility" Value="Auto"/>
        <Setter Property="SelectionUnit" Value="FullRow"/>
        <Setter Property="ColumnHeaderHeight" Value="25"/>
        <Setter Property="RowHeight" Value="25"/>
        <Setter Property="HorizontalGridLinesBrush" Value="LightGray"/>
        <Setter Property="VerticalGridLinesBrush" Value="LightGray"/>
        <Setter Property="ColumnHeaderStyle" Value="{StaticResource colStyle}"/>
        <Setter Property="Margin" Value="5,20,0,5"/>
        <Setter Property="Background" Value="Transparent"/>
        <Setter Property="BorderBrush" Value="LightGray"/>
        <Setter Property="RowStyle" Value="{StaticResource dgRowStyle}"/>
    </Style>

</ResourceDictionary>

4、视图模型

视图模型的意思是指UI界面与后台的哪个模型类绑定起来,业务逻辑由视图模型来决定,前台的UI界面只负责数据的渲染,这里都是命令绑定和属性绑定。

 

 1、命令绑定

2、属性绑定

 

这里是图形的参数绑定后台属性,意思是一样的。注意什么时候用双向,单向。当后台逻辑数据发生更改时,需要更新UI控件就使用双向绑定。

可以看下这些

WPF真入门教程19--对象数据绑定_wpf 查询绑定对象-CSDN博客

WPF真入门教程18--XML数据绑定_wpf xml-CSDN博客

WPF真入门教程17--双向数据绑定_wpf 双向绑定-CSDN博客

WPF真入门教程16--简单数据绑定_wpf中的textblock怎么绑定变量-CSDN博客

WPF真入门教程15--什么是数据绑定?_数据插入的时候提示绑定数值是什么-CSDN博客

5、运行起来

 这里面用到异步task,而不是winform中的定时器。

 希望帮到你,就是我最大的支柱,动动您的金手指,创作不易,整理不易,多多给矛点击支持,发财的小手指动起来。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1379944.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

UCB Data100:数据科学的原理和技巧:第二十一章到第二十六章

二十一、SQL II 原文&#xff1a;SQL II 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 学习成果 介绍过滤组的能力 在 SQL 中执行数据清理和文本操作 跨表连接数据 在本讲座中&#xff0c;我们将继续上次的工作&#xff0c;介绍一些高级的 SQL 语法。 首先&…

PHP在线文档管理系统源码

PHP在线文档管理系统源码 系统功能与介绍 在数据持续、快速增长背景下&#xff0c;企业面临海量非结构化数据处理需求&#xff0c;企业现有架构 通常无法应对海量非结构化数据的管理与应用。 支持私有化部署&#xff0c;完全内网环境下也可正常使用。 Windows、Linux、Mac等全平…

Java异常处理--异常处理的方式1:try-catch-finally

文章目录 一、异常处理概述二、方式1&#xff1a;捕获异常&#xff08;try-catch-finally&#xff09;&#xff08;1&#xff09;抓抛模型&#xff08;2&#xff09;try-catch-finally基本格式1、基本语法2、整体执行过程3、try和catch3.1 try3.2 catch (Exceptiontype e) &…

OSG加载STL模型

下载了2个简单stl模型&#xff0c;用基本的加载代码&#xff1b;直接可以加载&#xff1b; 查一点资料&#xff1b; 怎样在OSG中添加支持STL格式的模型文件&#xff1f; 使用OSG时&#xff0c;如果需要导入STL格式的模型文件&#xff0c;需要添加STL插件。 可以通过在代码中调…

docker compose安装gitlab

环境 查看GitLab镜像 docker search gitlab 拉取GitLab镜像 docker pull gitlab/gitlab-ce 准备gitlab-docker.yml文件 version: 3.1 services:gitlab:image: gitlab/gitlab-ce:latestcontainer_name: gitlabrestart: alwaysenvironment:GITLAB_OMNIBUS_CONFIG: |external_url…

流量加密之OpenSSL反弹加密

目录 1、OpenSSL 简介 2、使用 OpenSSL 反弹加密 shell 3、使用wireshark抓包验证 4、搭建 HTTPS Server 1、OpenSSL 简介 OpenSSL 是一个强大的、商业级的、功能齐全的开源工具包&#xff0c;用于 TLS&#xff08;以前称为 SSL&#xff09;、DTLS 和 QUIC&#xff08;目前…

怎么把m3u8文件转换为mp4?方法很简单

怎么把m3u8文件转换为mp4&#xff1f;m3u8文件是一种特殊的媒体文件格式&#xff0c;通常用于在线流媒体服务&#xff0c;如HLS&#xff08;HTTP Live Streaming&#xff09;。这种格式在很多场合下都非常有用&#xff0c;比如在线视频播放、直播等。然而&#xff0c;有时候我们…

ubantu运维,nginx相关操作

1、使用 命令ps aux | grep nginx查找nginx 运行目录&#xff0c;如下图&#xff1a; 2、使用 ​​​​​​​命令cd /usr/sbin 切换到nginx 运行目录&#xff0c;如下图&#xff1a; 3、修改配置文件后&#xff0c;使用 nginx -t 命令测试nginx配置文件的语法是否正确&#x…

Mac M1 Parallels CentOS7.9 Install Jenkins

官网: https://www.jenkins.io/ 一、Install & Check Java Env Oracle官网下载Java: https://www.oracle.com/cn/ # 拷贝到Jenkins服务器 scp Downloads/jdk-8u391-linux-aarch64.tar.gz root10.211.55.34:~# 解压 mkdir -p /opt/java && tar -zxvf jdk-8u391-li…

2024最新外卖CPS分销微信小程序源码【前端+后台+数据库+分销功能】

内容目录 一、详细介绍二、效果展示三、源代码下载地址 一、详细介绍 外卖侠CPS全套源码是一款为外卖平台提供分销功能的微信小程序。用户可以通过你的链接去领取外卖红包&#xff0c;然后去下单点外卖&#xff0c;既能省钱&#xff0c;又能获得佣金。该小程序带有商城、影票、…

Java内置锁:深度解析lock和trylock

lock和tryLock是两种获取锁的方式&#xff0c;它们在处理并发问题时有所不同&#xff0c;lock是阻塞性的&#xff0c;确保只有一个线程能访问被锁资源&#xff0c;但可能导致线程长时间等待&#xff1b;而tryLock非阻塞性&#xff0c;若锁被占用则立即返回失败&#xff0c;避免…

大数据人工智能在线实习项目:某实习网站招聘信息采集与分析

01前置课程 Python编程基础 Python网络爬虫实战 Python爬虫环境与爬虫简介 网页前端基础 简单静态网页爬取 常规动态网页爬取 模拟登录 Python数据分析与应用、可视化 数据分析概述 Numpy数值计算 Pandas统计分析与数据预处理 Matplotlib可视化 Pyecharts绘图 02师…

【华为鸿蒙】HarmonyOS开发学习:下载与安装软件看这一篇就够了!

下载与安装软件 DevEco Studio 支持 Windows 和 macOS 系统&#xff0c;下面将针对两种操作系统的软件安装方式进行介绍 Windows 环境 运行环境要求 为保证 DevEco Studio 正常运行&#xff0c;建议您的电脑配置满足如下要求&#xff1a;  操作系统&#xff1a;Windows10 …

【光波电子学】基于MATLAB的多模光纤模场分布的仿真分析

基于MATLAB的多模光纤模场分布的仿真分析 一、引言 &#xff08;1&#xff09;多模光纤的概念 多模光纤&#xff08;MMF&#xff09;是一种具有较大纤芯直径的光纤结构&#xff0c;其核心直径通常在10-50微米范围内。与单模光纤&#xff08;SMF&#xff09;相比&#xff0c;…

回归预测 | MATLAB实现SSA-CNN-GRU-Attention多变量回归预测(SE注意力机制)

回归预测 | MATLAB实现SSA-CNN-GRU-Attention多变量回归预测&#xff08;SE注意力机制&#xff09; 目录 回归预测 | MATLAB实现SSA-CNN-GRU-Attention多变量回归预测&#xff08;SE注意力机制&#xff09;预测效果基本描述程序设计参考资料 预测效果 基本描述 1.Matlab实现SSA…

XCTF:就在其中[WriteUP]

使用Wrireshark打开文件 点击‘统计’&#xff0c;查看协议分级 按占比分析 该数据包应该是在使用ftp协议传输文件 将其选中作为过滤器 以此将其分类&#xff0c;方便分析传输了什么文件 回到主界面 再点击‘分析‘选择追踪流 选择TCP Stream 绿框内是传输的所有文件&…

【排序篇2】选择排序、计数排序

目录 一、选择排序二、计数排序 一、选择排序 整体思想&#xff1a; 从数组中选出最小值和最大值放在起始位置&#xff0c;直到排序完成 具体步骤&#xff1a; 定义两个变量begin和end为下标&#xff0c;指向数组始末定义要找的最大值的下标为maxi&#xff0c;最小值的下标为…

Unity中URP下实现深度贴花(雾效支持和BRP适配)

文章目录 前言一、让我们的贴画支持雾效1、我们舍弃内部的MixFog方法2、使用 雾效混合因子 对最后输出颜色进行线性插值相乘 二、在Shader中&#xff0c;限制贴花纹理的采样方式1、申明 纹理 和 限制采样方式的采样器2、在片元着色器进行纹理采样 三、BRP适配1、C#脚本中&#…

0104 AJAX介绍

Ajax 的全称是 Asynchronous Javascript And XML &#xff08;异步 JavaScript 和 XML &#xff09;。 通俗的理解&#xff1a;在网页中利用 XMLHttpRequest 对象和服务器进行数据交互的方式&#xff0c;就是 Ajax Ajax 能让我们轻松实现网页与服务器之间的数据交互。 浏览器…

大语言模型下载,huggingface和modelscope加速

huggingface 下载模型 如果服务器翻墙了&#xff0c;不用租机器 如果服务器没翻墙&#xff0c;可以建议使用下面的方式 可以租一台**autodl**不用显卡的机器&#xff0c;一小时只有1毛钱&#xff0c;启动学术加速&#xff0c;然后下载&#xff0c;下载完之后&#xff0c;用scp…