首页 > 其他分享 >使用Fiddler劫持网络资源为前端开发助力(示例:Dynamic CRM 表单开发 也能热更新? )

使用Fiddler劫持网络资源为前端开发助力(示例:Dynamic CRM 表单开发 也能热更新? )

时间:2022-08-17 23:55:10浏览次数:79  
标签:web Fiddler 示例 Dynamic 更新 js fiddler 表单 CRM

背景:

  使用过vue开发的童鞋应该都知道,在开发vue项目的过程中,有个叫"热更新"的功能特别爽,在传统html开发到初次接触vue时,才发现原来前端开发可以这么香。热更新的表现形式是,启动项目后,会自动打开浏览器预览,同时在IDE进行代码修改,会自动编译更新发布,在浏览器会触发刷新后直接就能展示在IDE修改后的内容。

  那么,传统的Dynamic CRM 表单的js和html开发可以“热更新”吗?

痛点:

  Dynamic CRM web资源更新的最大痛点就操作繁琐,更新慢。更新一点点东西要发布很久。

 

穷则思变:为了解决这个痛点,我用过很多插件,如WebResourceUtility、Web resource updater,xrmtoolbox一些第三方更新的插件等不是很好用,后来研究出一种相对来说比较满意的一种方式,这种方式需要用到工具:Fiddler4

 

Fiddler4可以做什么?

 

先上个效果图:

  上面简单的一个效果图做了一个这样的操作:

    1、fiddler老本行抓包,嗅探到了浏览器访问图片url

    2、此图片url触发了AutoResponder规则

    3、规则匹配成功,把url的响应内容狸猫换太子,替换成了另外一个图片(fiddler作为中间层,把服务器返回的内容修改成了指定的内容,让浏览器误以为是服务器返回,也就是说劫持+篡改)

    4、好处是:免发布、见效快,上面只是切换站点地图触发局部刷新,就已经展现出效果了

 

应用案例:

  下面描述Dynamic CRM表单开发使用fiddler辅助开发进行“热更新”的步骤

  1、准备一个js,内容随意(我这里使用ts最终会生成js文件)

  

 

   2、将js发布到crm并且配置好加载函数

  

 

   3、打开表单查看没有篡改的效果

  

 

  4、配置AutoResponder规则 

  

 

 

  5、我们修改本地的js,将 Hi,Welcome to my blog! 改成 Hello,Welcome to my blog!  然后开启fiddler

  

  6、从步骤5可以看到我并没有发布,直接刷新页面,加载的是我本地修改的js

 

结论:

1、这种更新减少了服务器更新web资源的次数

2、使用fiddler规则替换web资源之后,见效很快

3、使用ts+linqpad更新是目前来说我觉得最佳的表单开发方案

  ①ts项目可支持压缩打包生成js占用网络资源小加载速度变快、语法自定义代码变得简洁、代码自动格式化、拥抱js最新es语法,体验语法糖带来的快乐,反正会打包成浏览器可识别的js

  ②linqpad批量发布web资源,加载目录直接勾选,避免了一个个发布,单个发布也变快(代码见另一篇文章:Microsoft Dynamics CRM 批量上传web资源(非官方WebResourceUtility)并替换实体图标

 

最后,

希望本文对大家有所启发,在dynamic crm的开发中,注入新的方式方法。

 

标签:web,Fiddler,示例,Dynamic,更新,js,fiddler,表单,CRM
From: https://www.cnblogs.com/xiefengdaxia123/p/16596091.html

相关文章

  • string.IsNullOrEmpty()方法以及C#中的示例
    String.IsNullOrEmpty()方法是String类的内置方法,用于检查字符串是Null还是Empty ?如果未使用正确的值初始化字符串对象,则将其视为“空字符串” ;如果已初始化字符串对象......
  • .NET MAUI 跨平台应用程序 (Windows App 和 Android )示例
    也就前周,.NetMAUI正式版出来了,一个支持跨平台的UI框架,Linux支持情况官网也没说,按理来说应该也是支持的,刚好,我最近也在研究GUI的基本原理,微软出品还是值得深入研究一下的......
  • Java SE 9 模块化示例
    JavaSE9模块化示例作者:Grey原文地址:JavaSE9模块化示例说明JavaSE9引入了模块系统,模块就是代码和数据的封装体。模块的代码被组织成多个包,每个包中包含Java类和......
  • Fiddler抓包工具安装HTTPS证书
    安装好之后,打开Fiddler根目录,打开CMD执行以下内容makecert.exe-r-ssmy-n"CN=DO_NOT_TRUST_FiddlerRoot,O=DO_NOT_TRUST,OU=Createdbyhttp://www.fiddler2.com"......
  • Java-封装结果集示例
    1@Data2publicclassResultDataimplementsSerializable{34/**5*状态码6*/7privateStringcode;89/**10*提示信息11......
  • Java SE 9 多版本兼容 JAR 包示例
    JavaSE9多版本兼容JAR包示例作者:Grey原文地址:JavaSE9多版本兼容JAR包示例说明Java9版本中增强了Jar包多版本字节码文件格式支持,也就是说在同一个Jar包......
  • useradd命令15个实际示例
    linux中useradd命令15个实际示例原创 入门小站 入门小站 2022-07-1623:09 发表于湖北收录于合集#Linux入门指南231个在Linux中,一个 useradd 命令是一个基础......
  • 面向对象(构造对象及tab切换示例)
    面向对象概述面向对象是一种编程思想(oop),他是将对应的过程替换成对应的对象,而不做去追求对应的过程实现,而通过去找对象的方式实现。综合思想:找有这个功能的对象,做这个事情......
  • Python示例——负数的位运算
    平时在coding的时候虽然会遇到位运算但一般也都是正数的位运算,今天突然见到了使用负数的位运算,对此十分好奇和困惑,为此做了下了解,于是有了此文。 给出一些位运算的例子:......
  • react+rust+webAssembly(wasm)示例
    前言:WebAssembly(简称wasm)已经出来有几年了,在一些需要高性能的web应用场景中,wasm技术可以让代码执行效率大大提升。react做为目前大厂主流的前端框架之一,搭配上最近几年一......