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

微信公众号怎么做网站链接ftp网站服务器

微信公众号怎么做网站链接,ftp网站服务器,图片在线编辑网站,开发微信小程序商城引言 前端通过修改 XHR 原型来全局增加 header 是采用 XMLHttpRequest 加 hook 方式实现一个简单业务场景。这样可以提高代码的可维护性和可扩展性#xff0c;减少重复代码的编写。 比如#xff0c;在用户登录后#xff0c;后端返回了一个 token#xff0c;前端需要在发送…引言 前端通过修改 XHR 原型来全局增加 header 是采用 XMLHttpRequest 加 hook 方式实现一个简单业务场景。这样可以提高代码的可维护性和可扩展性减少重复代码的编写。 比如在用户登录后后端返回了一个 token前端需要在发送的每个请求中都携带这个 token 以进行认证。通过修改 XHR 原型来全局增加 header可以实现全局性的认证信息添加无需在每个请求中手动设置 header。 模拟接口请求 mock 参数的时候也需要全局拦截 xhr 请求这个时候就需要 hook 对应的 send、open 函数了。 hook钩子函数 在JavaScript中“hook”钩子是一种编程模式它允许开发者在特定的代码执行点插入自定义的逻辑。钩子函数是用于在这些执行点执行自定义逻辑的函数。 钩子函数通常被设计成可拦截或修改某个操作的执行流程。它们允许开发者在关键步骤中插入自定义的代码以满足特定的需求例如添加额外的验证、修改数据、记录日志等。 在JavaScript中钩子函数可以通过以下两种方式实现 使用原生提供的钩子函数有些JavaScript库或框架提供了一些特定的钩子函数供开发者在特定的时机插入自己的代码。例如在Vue.js中可以使用created钩子函数在实例被创建后执行自定义逻辑。 new Vue({created() {// 自定义逻辑} });自定义钩子函数开发者可以根据需要在自己的代码中定义钩子函数。这些钩子函数可以是普通的函数在代码的特定位置被调用。例如在一个JavaScript类中可以定义一个钩子方法用于执行一些特定的逻辑。 class MyClass {constructor() {// 构造函数console.log(构造器创建)}beforeMethod() {// 在方法执行之前执行的钩子函数console.log(执行beforeMethod)}myMethod() {this.beforeMethod(); // 在方法执行之前调用钩子函数// 方法的实际逻辑console.log(方法的实际逻辑)this.afterMethod(); // 在方法执行之后调用钩子函数}afterMethod() {// 在方法执行之后执行的钩子函数console.log(执行afterMethod)} }const instance new MyClass(); instance.myMethod(); // 执行方法同时触发钩子函数通过使用钩子函数开发者可以在适当的时机执行自定义的逻辑以满足特定的需求。这种模式提供了更大的灵活性和可扩展性并允许代码的修改不影响原有的执行流程。 给XHR增加钩子函数 通过hook方式实现修改XMLHttpRequest的send或者open函数来全局增加header。 方式一采用闭包修改钩子函数 (function (open, send) {XMLHttpRequest.prototype.open function () {open.apply(this, arguments);};XMLHttpRequest.prototype.send function () {/*** 接口请求前增加自定义业务逻辑处理*/this.setRequestHeader(diyHeader, diyHeader666666666);send.apply(this, arguments);}; })(XMLHttpRequest.prototype.open, XMLHttpRequest.prototype.send);方式二通过hook自定义函数修改 function hookXhr(func) {const origin func;return function () {// arguments 是一个对应于传递给函数的参数的类数组对象。console.log(arguments);this.setRequestHeader(diyHeader, diyHeader666666666);return origin.apply(this, arguments);}; } XMLHttpRequest.prototype.send hookXhr(XMLHttpRequest.prototype.send); // XMLHttpRequest.prototype.open hookXhr(XMLHttpRequest.prototype.open);tips 编程语言中比如 Java是支持将方法声明为私有的即它们只能被同一个类中的其他方法所调用。 而 JavaScript 没有这种原生支持但我们可以使用闭包来模拟私有方法。私有方法不仅仅有利于限制对代码的访问还提供了管理全局命名空间的强大能力避免非核心的方法弄乱了代码的公共接口部分。 下面的示例展现了如何使用闭包来定义公共函数并令其可以访问私有函数和变量。这个方式也称为模块模式module pattern var makeCounter function () {var privateCounter 0;function changeBy(val) {privateCounter val;}return {increment: function () {changeBy(1);},decrement: function () {changeBy(-1);},value: function () {return privateCounter;},}; };var Counter1 makeCounter(); var Counter2 makeCounter(); console.log(Counter1.value()); /* logs 0 */ Counter1.increment(); Counter1.increment(); console.log(Counter1.value()); /* logs 2 */ Counter1.decrement(); console.log(Counter1.value()); /* logs 1 */ console.log(Counter2.value()); /* logs 0 */请注意两个计数器 Counter1 和 Counter2 是如何维护它们各自的独立性的。每个闭包都是引用自己词法作用域内的变量 privateCounter 。 每次调用其中一个计数器时通过改变这个变量的值会改变这个闭包的词法环境。然而在一个闭包内对变量的修改不会影响到另外一个闭包中的变量。 参考 mdn xhr setRequestHeadermdn 闭包
http://www.zqtcl.cn/news/939389/

相关文章:

  • 免费舆情信息网站hao123主页
  • 网站空间不足wordpress最新编辑器怎么还原
  • 电信网站备案查询系统wordpress搜插件错误
  • 忻州企业网站建设房地产 网站 设计制作
  • 重庆水务建设项目集团网站中国十大公司排行榜
  • 做网站服务器需要系统app程序定制开发
  • 宁波网站推广营销公司wordpress插件转php
  • wordpress网站生成app应用制作广告的软件
  • 网站建设多久可以建成淘宝建设网站首页
  • 东营市做网站什么是网络营销道德
  • asp评价网站开发文档安卓软件app
  • phpcms旅游网站模板辽宁建设工程信息网开标大厅我的项目中没有显示
  • 深圳网站建设方维网络建设一个网站报价
  • 北京网站建设 案例邢台微商城制作设计
  • 网站开发一般都有系统wordpress评论优化
  • 网站建设找好景科技山东关键词网络推广
  • 网科创想网站管理外贸网站推广和建站
  • 唐山企业网站模板建站动物自己做的网站
  • 旅游攻略网站开发外包网站开发公司
  • 免得做网站wordpress国内主机
  • 绍兴网站建设方案报价朗格手表网站
  • 建立自己公司网站的方法南京网站制作多少钱
  • 字形分析网站做自媒体查找素材的网站
  • 做网站建设的上市公司有哪些网站源码怎么预览
  • 怎么学做电子商务网站知果果网站谁做的
  • 网站软文推广网站wordpress建站教程第六节
  • 公司制作网站多少钱移动端网站建设的请示
  • 做网站 对方传销廊坊网站备案
  • 1688网站链接图片怎么做wordpress 饭店主题
  • 人事怎么做招聘网站比对分析教育机构网站开发