• 本地修改js代码并时时生效的解决办法


      js作为客户端语言(当然它也可以作服务端语言),非常强悍,一般情况下,我们都是在开发阶段不停的改,然后上线之后就作为稳定运行的代码。

      然而有时候可能因为js写得有问题,导致上线后,某些功能无法使用,这就悲催了,而且一般的公司上线应该都不会很容易。

      那么对于这种js一类的修改,如果能在本地临时生效,做一些紧急问题的修复,就很重要了。(我也是遇到这个坑,只要把这次临时问题修复,等下一个功能代码要上线时,再修复也是可以的)

      那么,怎样做到本地修改js文件,从而达到代码运行ok的效果呢? 本文将会给出多种解决方案:

    一、 使用fiddler拦截请求更改参数!!!

      如果是因为某些必要参数传递不对,从而导致服务端无法正常运行,那么我们可以直接拦截请求,修改参数,再次发送到服务端,从而规避该问题。

      这种情况一般发生在使用ajax访问服务端程序时出现,比如某个值因为某种原因,导致js发送ajax请求时,少了某个必要参数,从而导致服务端报参数错误。

      具体解决办法就是:下载并安装http调试神器fiddler, 设置对该站点的拦截请求如: bpu http://a.com, 在拦截到后,添加该必要参数,点击继续请求,从而达到通过服务端验证的需求,如果要求多次操作,那么还可以设置自动修改拦截请求参数的设置,具体方法请自行研究fiddler自动拦截请求方法。

      当然了,这种请求主要针对http协议,对于https还是显得有些为难的,这也是为什么https会如此受追棒的原因吧。

    二、 通过使用浏览器插件Tampermonkey,动态修改js代码!!!

      如果需要修改处理逻辑较多,那么,可以借助Tampermonkey插件,直接覆盖某js文件,从而达到请求更改的处理。页面部分处理如下:

     

       主要填写需要替换的js文件的路径,然后写需要覆盖的js逻辑,保存,刷新即可生效。

    三、 直接通过控制台运行代码,覆盖原有代码生效!!!

      我平时主要使用控制台来计算一些自己试验性质的代码,但是后来我发现,这个功能完全可以覆盖到真正生产中的代码里去。

      比如有一个按钮的监听事件(假设使用jquery写的)

    $('#id').on('click', function() {
        alert(111);
     }); 

      那么,如果,如果我想改怎么办? 解决为,直接在控制台重新注册该事件即可,即运行:

    $('#id').off().on(function() {
         alert('my alert');
     });

    这样,当点击该按钮时,就会生效为后面代码的功能了。

      注意这里有一事件冒泡的问题,一定要先解绑事件,再注册事件,否则会有多个事件响应。

      那么,对于函数一类呢,则是直接以相同的函数名称重写方法即可,而根据js的运行原理,即会运行你后面写的方法。

      好了,本地修改js并生效的方法,大概就说到这里,个人感觉也够用了。

      js作为客户端语言确实很方便,尤其是明白了发一次上线代码不容易之后。有时真能解燃眉之急!!!

      另作声明: 虽然js可以方便本地更改js生效,但是这并不意味着js显得太不安全了,因为这里所有的操作都是以在你本机上操作为基础前提的,也就是说你会为你所有的更改负责,而不是js为你的安全买单!

  • 相关阅读:
    http的8种请求方式
    死锁
    进程与线程
    vuex
    路由懒加载
    SPA单页面富应用
    组件中的data为什么必须是函数
    v-for中key的作用
    关于排序的常识总结
    关于树的常见操作-C++面试
  • 原文地址:https://www.cnblogs.com/yougewe/p/6964724.html
Copyright © 2020-2023  润新知