成电选课系统卡顿的暂时解决方法 2017-12-26

最近选课系统比往年卡顿的多得多,基本上还没动一动就卡,之前还是刷新慢,现在直接将浏览器卡死

觉得有点蹊跷,就用Fiddler进行抓包过滤,发现比以前多了一些东西(之前分析过选课系统的逻辑,本来想写个抢课的,结果太懒不想写了2333)


1.png

从图上可以看到,选课网页一直在定时查询当前学生选中的所有课程的权重情况(蓝色链接),这种轮询间隔时间很短,而且每个链接只查询一门课的权重。

在现在同学们都在选课的时候,服务器应该压力会很大(一直在做查询),导致查询的时候返回时间有时候很长,由于不是很清楚前端,所以不清楚这个是不是让浏览器卡死的原因,但是这个的确是让页面动不动卡死的原因(当这些请求加载完之后,选课页面就会很顺滑233)

暂时的解决办法
注:这个方法只能暂时解决浏览选课页面动不动卡住的问题,不能解决访问教务系统缓慢的问题(这个是服务器压力太大了,没办法,谁让是土豆服务器呢)

既然这些请求返回时间很长,那能不能在本机拦截这些请求直接返回呢(不能不返回结果,不然会一直提示响应失败,如下图,更烦)

Image.png

我使用Fiddler的Auto Responder拦截了这些请求(后面会说具体的步骤),都返回权重值为0,这样页面是不卡了,可以流畅地查看课程,但是却有一个问题,就是我的所有投出去的权重都变成了0,而且在修改权重的时候提示权重上限为0,暂时还没找到解决方法,只能在需要修改权重的时候将Auto Responder关闭,就恢复正常了

创建Auto Responder的方法

  1. 下载并安装Fiddler,打开Fiddler开始抓取浏览器的包,然后在浏览器中访问选课页面,就能在Fiddler中看到抓到的请求

  2. 在Fiddler的右边找到Auto Responder

1

进入之后,在左边选择要拦截的查询权重的链接,具体的网址为
/eams/stdVirtualCashElect!getLessonCost.action(只用选择一个就可以),然后点击Add Rules,然后记得勾选Unmatched requests passthrough

2
  1. 点击Inspectors,然后选中之前成功返回的请求,右边会出现响应内容
3
  1. 点击下方的View in Notepad,会将响应内容以记事本打开,然后将打开的文本文件另存为一个htm文件到某个位置(我保存到了桌面),
4
4

注:解释一下这里的响应内容,可以看到这里面的响应内容有一个0,代表我这门课投的是0权重,这个响应内容不同没有关系,只要是符合规范的响应内容都可以

  1. 返回Auto Responder,选中之前插入的要拦截请求的规则,在下方的Rule Editor中点击下拉箭头,在下拉列表中选择Fild a file...
5

选择之前保存的htm文件

  1. 选择之后点击旁边的Save保存,然后勾选Enable Rules就可以执行拦截,选课页面就不会卡了,但是你的权重值就不能被修改,如果需要修改权重值,则把Enable rules取消勾选就可以
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,156评论 19 139
  • 一.Fiddler介绍 Fiddler是一个http抓包改包工具,fiddle英文中有“欺骗、伪造”之意,与wir...
    舍末逐本阅读 2,474评论 0 21
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,118评论 25 709
  • 无意间看到谷大白话转发的一个喜剧表演,演员是Bo Burnham,真是戳中我的笑点。 他是以唱歌的形式搞笑,貌似台...
    Leonor_Z阅读 944评论 0 0
  • 无戒365天极限挑战营 第7天 幼儿园篇 幼儿园的年纪,我给孩子选择了小区里的双语幼儿园,这个学校的教学是宽松的,...
    温润如玉如你阅读 176评论 2 2