当前位置: 首页 > wzjs >正文

如何学好js网站开发中国建筑招聘信息

如何学好js网站开发,中国建筑招聘信息,做网站内容管理器要吗,推荐的网站制作背景 用户在WEB页面上点击按钮,服务端需要执行一系列操作,该操作系列步骤较多且耗时长,为了更好的给用户浏览体验,需要在每进行一个步骤由服务端推送消息给客户端(浏览器),避免一个长时间的操作…

背景

用户在WEB页面上点击按钮,服务端需要执行一系列操作,该操作系列步骤较多且耗时长,为了更好的给用户浏览体验,需要在每进行一个步骤由服务端推送消息给客户端(浏览器),避免一个长时间的操作在用户看来是没有进度的过程。

环境

C# ASP.NET VS2022 WIN10 64位
主要使用 Microsoft.AspNet.SignalR 组件实现

步骤

1.创建ASP.NET Web应用程序

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2. 通过 NuGet 包管理器安装 Microsoft.AspNet.SignalR

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
安装完成后会增加下述JS脚本在项目中:
在这里插入图片描述

此时直接运行之前Default.aspx会报错,如下图:
在这里插入图片描述
这个错误是因为使用SignalR时,需要有一个OWIN启动类来配置SignalR的中间件。OWIN(Open Web Interface for .NET)是一个标准,用于定义.NET Web应用程序和Web服务器之间的接口。

3. 后台代码

3.1 使用 OWIN 中间件来配置 SignalR

增加启动类 StartUp.cs,命名空间适配自己的,需要引用Microsoft.Owin

using Microsoft.Owin;
using Owin;
using System;
using System.Web;[assembly: OwinStartup(typeof(SignalRTest.Startup))]namespace SignalRTest
{public class Startup{public void Configuration(IAppBuilder app){// 配置SignalRapp.MapSignalR();}}
}

此时运行WEB应用,页面不再报错

3.2 增加ProcessHub类

using Microsoft.AspNet.SignalR;
using System;
using System.Threading.Tasks;
using System.Threading;
using System.Web;namespace SignalRTest
{public class ProcessHub : Hub{// 这个方法将被服务端直接调用,用于向客户端发送进度消息public static void SendProgress(string message){var hubContext = GlobalHost.ConnectionManager.GetHubContext<ProcessHub>();hubContext.Clients.All.updateProgress(message);}}
}

4. 前端代码

在ASP.NET页面的 head 部分增加 JS代码

<script src="Scripts/jquery-1.6.4.min.js"></script>
<script src="Scripts/jquery.signalR-2.4.3.min.js"></script>
<script src="/signalr/hubs"></script><script type="text/javascript">$(function () {// 引用 SignalR hubvar processHub = $.connection.processHub;// 定义客户端接收进度更新的方法processHub.client.updateProgress = function (message) {$('#progressDiv').append('<p>' + message + '</p>');};// 启动连接$.connection.hub.start().done(function () {console.log('SignalR 连接已建立');}).fail(function (error) {console.log('SignalR 连接失败: ' + error);});});</script>

body 表单部分 增加相应的控件
Button 用于响应用户操作
progressDiv 用于展示进度文本

    <form id="form1" runat="server"><div><h2>SignalR 进度示例</h2><asp:Button ID="btnProcess" runat="server" Text="开始处理" OnClick="btnProcess_Click" /><hr /><div id="progressDiv" style="border: 1px solid #ccc; padding: 10px; margin-top: 10px; min-height: 100px; height: 470px;"></div></div></form>

注意
<script src=“/signalr/hubs”>
必须要有,启动页面后控制台可见输出:
在这里插入图片描述

4.1 前端页面的后台代码

using Microsoft.AspNet.SignalR.Infrastructure;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;namespace SignalRTest
{public partial class Default : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){}protected void btnProcess_Click(object sender, EventArgs e){// 创建一个任务来异步处理Excel生成Task.Run(() => ProcessData());}private void ProcessData(){Thread.Sleep(100);ProcessHub.SendProgress("开始处理数据...");Thread.Sleep(1000);// 模拟处理2024年数据ProcessHub.SendProgress("正在处理2024年的数据...");Thread.Sleep(5000);  // 模拟处理需要5秒// 模拟处理2025年数据ProcessHub.SendProgress("正在处理2025年的数据...");Thread.Sleep(5000);  // 模拟处理需要5秒ProcessHub.SendProgress("数据处理完成!");}}
}

注意:
由于按钮没有使用AJAX提交,第一个SendProgress之前若没有Thread.Sleep,容易丢失第一条信息。

后记

没有处理的问题有很多,只作为一个最基础功能的展现

  1. 按钮在点击后没有禁用,单页面上会触发多次点击
  2. 没有取消功能,即使关闭浏览器代码依旧在服务端执行
  3. 进度发给了所有客户端,即打开多个进程一个页面上点击所有的都会收到
    在这里插入图片描述
  4. 进度文本堆积,没有自动下滚

文章转载自:

http://1PhMOadb.kyfrL.cn
http://ET2hVMjg.kyfrL.cn
http://axKYsJ6O.kyfrL.cn
http://8L9ZfBDo.kyfrL.cn
http://50i66UR5.kyfrL.cn
http://COEXwjdZ.kyfrL.cn
http://ft16QIFn.kyfrL.cn
http://RxE5VfWV.kyfrL.cn
http://j7bl4wf3.kyfrL.cn
http://KzawvJs9.kyfrL.cn
http://sgSAot8e.kyfrL.cn
http://rhQwJkvZ.kyfrL.cn
http://YIAAUaAb.kyfrL.cn
http://qzaZZPKH.kyfrL.cn
http://NSg4nzaR.kyfrL.cn
http://gesX6hEJ.kyfrL.cn
http://nkXFQBF1.kyfrL.cn
http://0ToA037p.kyfrL.cn
http://2okfx6Lf.kyfrL.cn
http://zqlVK5at.kyfrL.cn
http://hJroVhv4.kyfrL.cn
http://g652XQi7.kyfrL.cn
http://jjPfwLpS.kyfrL.cn
http://rJXIXZBR.kyfrL.cn
http://sfZU3e6V.kyfrL.cn
http://CYY44SrJ.kyfrL.cn
http://0VRyBekM.kyfrL.cn
http://GobRQ57a.kyfrL.cn
http://9szrQzvh.kyfrL.cn
http://v05GtW95.kyfrL.cn
http://www.dtcms.com/wzjs/689447.html

相关文章:

  • 校园网站建设特色网站要怎么做才专业
  • 网站建设与管理考题建设网站服务器是什么
  • 宁夏自治区公路建设管理局网站莱阳网站建设公司
  • 虚拟网站仿制教程创新的合肥网站建设
  • 怎么免费做公司网站沈阳外贸网站建设
  • 一个可以看qq空间的网站iis7 网站权限设置
  • 网站建设 华博互联佛山网站建设4-win方维
  • 榆林哪里做网站备案网站内容格式填写
  • 官方网站的要素腾讯云可以用wordpress教程
  • 旺道网站排名优化wordpress短代码下载按钮
  • 爱情动做网站推荐阿里云备案网站负责人
  • 上海珍岛网站建设免费网站建站模板
  • 企业网站建设多钱南阳做网站电话
  • 最好网站开发公司电话清远建网站的公司
  • 网站建设搭建是什么意思单县网站
  • 怎样用代码制作网站微信最好用的营销软件
  • 手机网站建设服务哪家好建设公司网站费用多少
  • 网页建站工具WordPress博客建站系统
  • 网站建设的基本过程国外网站为什么不用备案
  • 做暧网站免费贵州省建设职业技术学院网站
  • 免费制作论坛网站制作企业免费网站
  • 网站定制微安电力案例嘉定网站开发
  • 网站毕业设计一般做几个页面网站做文件检查
  • 百度产品推广百度关键词优化大师
  • 龙岩抖音seo搜索排名上海seo外包
  • 网站开发安全维护老薛主机怎么安装wordpress
  • 西安做网站的公司新注册建筑公司名称大全
  • 征求网站建设意见的通知wordpress搭建个人博客linux
  • 网站建设图书馆管理系统django商城网站开发的功能
  • wordpress教育网站动漫制作专业好吗