当前位置:首页 > CN2资讯 > 正文内容

JavaScript:动态代理之远程代理js 代理

14小时前CN2资讯

JavaScript:动态代理之远程代理

背景

2008 第一次使用 AJAX 的时候好像使用的是 ,该组件支持为服务器 C# 类型提供 JS 代理,当时不是十分的明白。设计模式中有代理模式,不过真正需要我们手工写代理的次数却不多,多数的代理都是动态是生成的,即:动态代理,动态代理的一种应用场景就是:远程代理,本文演示一下 JS 如何实现远程代理的。

远程代理

远程代理的本质是根据元数据自动生成代理类型,就 JS 来说,我们有两种思路生成远程代理:

  • 服务器根据元数据生成代理。
  • 服务器提供元数据,JS 根据元数据生成代理。
  • 这里给出第一种方案的简单实现:

    代理生成器

    1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Web; 5 using System.Web.Mvc; 6 7 namespace JsProxyStudy.Controllers 8 { 9 public class JsProxyGeneratorController : Controller 10 { 11 // 12 // GET: /JsProxyGenerator/ 13 14 public ActionResult Index() 15 { 16 // 元数据的获取可以采用反射,再利用 Attribute 提供个性化配置和扩展,此处省略。 17 var metadata = new 18 { 19 Controller = "User", 20 Actions = new[] 21 { 22 new 23 { 24 Name = "Create", 25 Params = new []{ "username","password"} 26 } 27 } 28 }; 29 30 return JavaScript(new Proxy { Metadata = metadata }.TransformText()); 31 } 32 } 33 }

    测试页面

    1 <!DOCTYPE html> 2 <html xmlns="http://www.w3.org/1999/xhtml"> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 5 <title></title> 6 <script src="jquery-1.11.0.min.js"></script> 7 <script src="JsProxyGenerator"></script> 8 </head> 9 <body> 10 </body> 11 </html> 12 <script type="text/javascript"> 13 User.Create("shijiucha", "123456", function (result) { 14 console.log(result); 15 }); 16 </script>

    说明

    上面采用 T4 生成的代理,元数据是手工提供的,对于提供反射能力的平台来说,完全可以自动化生成元数据。

    备注

    其实利用 JS 自己生成远程代理更简单,因为:C# 语言生成 C# 自身的代理需要使用 Emit,非常麻烦,而 JS 生成 JS 的代理就非常简单。这种思路稍微修改一下可以根据服务器元数据,自动生成 UI。还有一种高级的架构模式一般伴随着动态代理,即:管道过滤器模式,利用此模式可以实现一定的 AOP 功能。

    完整的代码这里下载:https:///SourceControl/latest#JsProxyStudy/JsProxyStudy/Test.html。

    框架地址:http://
      你可能想看:

      扫描二维码推送至手机访问。

      版权声明:本文由皇冠云发布,如需转载请注明出处。

      本文链接:https://www.idchg.com/info/24010.html

      分享给朋友:

      “JavaScript:动态代理之远程代理js 代理” 的相关文章

      inet.ws 纽约VPS测评:高性能不限流量,享受流畅网络体验

      inet.ws 是一家在2020年成立的科技公司,专注于提供高性能的VPS服务。从成立之初,我们的目标就是为用户提供稳定、高效且不限流量的虚拟服务器解决方案。我们深知,无论是个人用户还是企业客户,都需要一个可靠的网络环境来支持他们的日常操作和业务需求。因此,我们致力于打造一个能够满足多样化需求的服务...

      香港VPS推荐:选择适合您的虚拟服务器的最佳指南

      在如今的互联网时代,香港VPS逐渐成为了个人和企业的热门选择。香港VPS,简单来说,是一种虚拟专用服务器,位于香港的数据中心。它为用户提供云计算的强大能力,不论是网站托管、应用开发,还是数据存储,都能灵活应对需求。对于希望在亚太地区拓展业务的用户来说,这无疑是一个理想的解决方案。 香港VPS的多样化...

      宝塔面板安装指南:轻松搭建与管理云服务器

      宝塔面板是一款专为服务器运维设计的工具,以其简单易用的操作界面受到广泛欢迎。我在使用云服务器建站时,发现宝塔面板让繁琐的服务器管理变得轻松自如。它支持一键安装LAMP和LNMP环境,用户可以在数分钟内搭建出一个完整的网站环境,而且它还集成了监控、数据库管理、FTP等多种功能,真是一个多面手。 无论是...

      如何有效使用WP Rocket插件提升WordPress网站性能

      WP Rocket是一个强大的高级WordPress缓存插件,它的使用对于提升网站的速度和性能起着至关重要的作用。如今,网站的加载速度对于用户体验和SEO排名都有着重要的影响。WP Rocket通过一系列功能和设置,帮助用户轻松优化自己的网站,进而增加访问量和客户满意度。 在使用WP Rocket插...

      反向代理的工作原理与应用场景详解

      反向代理概述 反向代理,听起来似乎有点复杂。实际上,这是一个位于客户端和服务器之间的“中间人”,它对客户端是透明的。换句话说,客户端并不知道有这个反向代理的存在。它的主要任务是接收客户端的请求,然后把这些请求转发给后端的服务器,再把服务器的响应返回给客户端。想象一下,反向代理就像一个邮递员,负责将信...

      2023年VPS评测:选择适合您的虚拟私人服务器的指南

      在网络世界中,VPS代表虚拟私人服务器。简单来说,它是一种虚拟化技术,允许用户在一台物理服务器上运行多个虚拟服务器。每个VPS都有独立的操作系统和资源,用户可以专属管理和配置,像对待自己的服务器一样。这种灵活性使得VPS成为开发者、企业和个体户等各种用户的热门选择。无论是网站托管,还是应用程序的开发...