1 解决的问题

1)        场景1:生产环境报错

对前台开发来说,业务逻辑都在js中,所以报错90%以上都是js问题。

如果生产环境出现报错,但是测试环境正常。这时修改了代码没有环境验证效果,直接升级到生产环境风险又太高——(1)万一升级后依然不好使导致客户不耐烦呢?(2)万一牵连出别的问题呢?

此时需要一种方法,可以在生产环境的网址上调试本地的js文件。

2)        场景2:本地工程不给力

某个任务修改了js文件,进行单元测试时发现本地工程太慢,或者本地工程更新了代码后项目无法启动。此时需要一种方法,可以在测试环境的网址上直接调试本地的js文件。

1.3       技术原理

1)        本地电脑的浏览器访问页面时,会从服务器端下载文件到本地浏览器中执行

2)        我们可以利用fiddler软件,截获从服务器上下载的文件,把之替换成本地的指定文件,这样在浏览器中生效的就是本地的文件了。

截取前:response是服务器发来的文件,代码版本是服务器上的。

截取后:fiddler把服务器上的文件替换为本地我指定的文件,提供给浏览器使用。

2         操作步骤

1)        打开fiddler软件

2)        打开软件的监听。(菜单方式,或f12快捷键)打开监听后,软件左下角会有展示

3)        打开网页,左侧会展示监听到的各种文件,js文件一般为绿色。

——如下截图操作的是common.js文件。

  1. 把左边的common.js文件,拖拽到右边的“AutoResopnder”tab页内。
  2. 勾选标记的2个东西。
  3. 拖拽过去后,下面就会多出一行条目,就是框住的那一条。
  4. 在页面右下角有2行路径,上面的就是咱们拖拽的文件的服务器路径,不动即可。下面的那行路径应选择为本地替换文件的路径。
  5. 选择的方法是:点击向下箭头,选择最下面的“find a file …”会打开本地的浏览窗口,选择本地的文件。
  6. 点击一下save按钮。
  7. 这样,common.js文件浏览器就不会使用服务器上的版本了,而是使用本地的代码文件。
  8. 提醒:本地再次修改后,需要清理浏览器缓存并刷新页面,以使新文件生效。

3         注意事项

3.1       端口设置

可以设置和修改端口,如图。应该是任何不和别的软件冲突的可用端口都可以。

 

3.2       清理ie缓存

修改文件后,需要清理ie缓存后刷新页面,此时浏览器中生效的是改后版本。

3.3       工具是代理,有时影响上网

此工具相当于一个代理软件,若开着监控,有时会使得浏览器打不开外网。

3.4       不要忘记打开监听

不要忘记打开监听。(菜单方式,或f12快捷键)

3.5       清屏操作

用工具栏的如下按钮

3.6       关于安装

官网:http://www.telerik.com/fiddler

  1. 使用fiddler需要电脑中已安装“.net framework”,.net相当于微软参考java的jdk做的东西,封装了一些类库和基础功能,windows操作系统会自带某个版本的.net。
  2. fiddler有2个版本的安装包,分别对应.net 2和.net 4,功能上无区别,我使用的是对应.net 2的版本。

4         其他说明

4.1       可截取其他类型文件:html,图片,css等

css样式的修改,图片的替换等,也可以方便地用此技术方案进行测试。

4.2       要关注代码分离

Css样式和js业务逻辑,尽量不要和页面耦合在一起,写成独立文件,不仅方便代码版本维护,而且便于未来的修改和调试。

其实java文件也同理,一个java文件代码太多的话,未来拆包的风险和工作量就会很多。

5          “互联网产品”的安全性

“互联网应用”的业务校验不能依赖前端。

1)        大家可能都笼统地听过一个概念:前端的校验是不可信的,核心的校验一定要放到服务器端来做。但可能对这种说法体会都不深。

2)        本次的讲解就是一个鲜活的例子:黑客可以通过截取网站js文件,把里面的前端校验都去掉,如果网站的服务器端没有做严格的二次校验,那么就很可能受到黑客的攻击。

3)        特别提示:校验放到服务器端,指的是包括发起校验的动作也得在服务器端。可能有的同事写过这样的代码,js文件中调一个java的bo或action函数进行校验,这种校验在形式上是在服务器端进行的,可是发起校验的动作却是在前台,黑客完全可以篡改代码让这个校验动作都不发起。

技术方案:在外部网址调试本地js(基于fiddler)的更多相关文章

  1. vscode断点调试本地客户端文件

    一.安装chrome,安装vscode,打开vscode编辑器,安装插件Debugger for Chrome 二.新建文件 1.目录结构 . ├── index.html ├── index.js ...

  2. 利用fiddler和mock调试本地微信网页

    利用fiddler和mock调试本地微信网页 微信公众号网页是比较特殊的页面,普通页面直接打开即可访问,但对于需要请求微信相关接口的部分需要安全域名认证.这导致了使用mock数据进行开发的页面没办法走 ...

  3. 全面解密QQ红包技术方案:架构、技术实现、移动端优化、创新玩法等

    本文来自腾讯QQ技术团队工程师许灵锋.周海发的技术分享. 一.引言 自 2015 年春节以来,QQ 春节红包经历了企业红包(2015 年).刷一刷红包(2016 年)和 AR 红包(2017 年)几个 ...

  4. C#开发BIMFACE系列49 Web网页中加载模型与图纸的技术方案

    BIMFACE二次开发系列目录     [已更新最新开发文章,点击查看详细] 在BIMFACE二次系列博客中详细介绍了服务器端API的调用方式,如下列表 C#开发BIMFACE系列1   BIMFAC ...

  5. 「微前端实践」使用Vue+qiankun微前端方案重构老项目的本地验证

    10月份换了新的工作,参与完一个月的需求迭代后,接到了项目重构的任务.简单来说,需要在短时间内提出方案设想,同时进行本地验证,最终需要拿出一套技术替换方案来.于是,埋头苦干了一个月,总算干了点成绩出来 ...

  6. 如何写好B端产品的技术方案?

    B端产品为企业提供协同办公的工具,帮助企业解决某类经营管理问题,核心价值在于为企业增加收入.降本提效.管控风险,企业级SaaS产品也是B端产品中的一类. B端产品有以下特点: ​客户是一个群体:B端产 ...

  7. 用node-inspector调试Node.js(转自NOANYLOVE'S BLOG)

    原文地址:http://www.noanylove.com/2011/12/node-the-inspector-debugging-node-js/ 用node-inspector调试Node.js ...

  8. 关于封装Dll为Web Service技术方案的讨论

    关于web架构技术方案的讨论整理 Sonictl 2014年1月25日10:05:52 本着"三人行必有我师"的学习态度,我在近期跟x老师做了大量沟通,结合我们单位对于" ...

  9. VSCode调试Html中的脚本 vscode前端常用插件推荐,搭建JQuery、Vue等开发环境 vsCode 添加浏览器调试和js调试的方法总结 VS Code - Debugger for Chrome调试js

    一.背景 使用Visual Studio Code写了一个简单的Html页面,想调试下其中script标签里的javascript代码,网上查了一通,基本都是复制粘贴或者大同小异的文章,就是要安装De ...

随机推荐

  1. 为什么我最终替换掉了NATS

    之前公司没有使用msmq/rebbitmq等消息队列,一方面是觉得太重,想避免在引入中间件.另外的原因是公司的业务并不需要消息持久化和确保可送达(at-least-once VS at-more-on ...

  2. SuperSocket入门(五)-常用协议实现模版及FixedSizeReceiveFilter示例

             Socket里面的协议解析是Socket通讯程序设计中最复杂的地方,如果你的应用层协议设计或实现不佳,Socket通讯中常见的粘包,分包就难以避免.SuperSocket内置了命令行 ...

  3. iOS多线程——GCD与NSOperation总结

    很长时间以来,我个人(可能还有很多同学),对多线程编程都存在一些误解.一个很明显的表现是,很多人有这样的看法: 新开一个线程,能提高速度,避免阻塞主线程 毕竟多线程嘛,几个线程一起跑任务,速度快,还不 ...

  4. tbl.js div实现的表格控件,完全免费,不依赖jquery

    html上现在有比较好用的表格控件是datatable,但是编辑.按钮等部分是收费的,只有基础功能免费.而且尺寸发生变化时需要手工刷新等繁琐操作较多.所以我开发一个免费的供大家使用. 本项目已用于&q ...

  5. 微软Visual Studio二十周年:VS2017于3月7日发布

    二十年前的今天,微软正式发布Visual Studio 97.如今二十年已经过去,微软宣布全新的Visual Studio 2017即将在美国当地时间3月7日正式发布. VS97是Visual Stu ...

  6. iOS Storyboard适配问题

      通用的Storyboard 通用的stroyboard文件是通向自适应布局光明大道的第一步.在一个storyboard文件中适配iPad和iPhone的布局在iOS8中已不再是梦想.我们不必再为不 ...

  7. windows下vue+webpack前端开发环境搭建及nginx部署

    一.开发环境搭建 1.前端框架一般都依赖nodejs,我们首先要安装node.js.请参考http://www.cnblogs.com/wuac/p/6381819.html. 2.由于许多npm的源 ...

  8. js DOM操作---登录例子总结

    简单的总结下用 javascript DOM 实现简易登录框例子,下面是简单的模拟登录,没有具体的登录样子,但只是模拟,整理下思路. 页面简单布局,我这个确实太简单了,看代码: <body> ...

  9. 如何写好 Git commit messages

    导语:任何软件项目都是一个协作项目,它至少需要2个开发人员参与,当原始的开发人员将项目开发几个星期或者几个月之后,项目步入正规.不过他们或者后续的开发人员仍然需要经常提交一些代码去修复bug或者实现新 ...

  10. java初级开发程序员(第二单元)

    *课前必背.需要记忆的单词: double   小数    String  字符串    character   字符 integer  整型    Scanner  扫描仪   score    分 ...