HTTP 3XX重定向时对URL Hash(Fragment identifier)的处理方式

发布时间 : 2019-07-23
发布 : 2019-07-23 浏览 :

项目用的Vue-Router, 路由的形式是使用 Hash History, 即 #/XXX 这种形式的, 在进入系统时如果发现没有登录, 后台会302 到 SSO用户中心,同时后台拿到登录前的页面地址进行加密编码, 以参数的形式放在302的地址中,在登录之后再302到改地址。
发现后台在探测到没有登录的时候拿到的当前页面的地址是不包含 URL Hash的, 如果不包含的话那么登录之后就可能无法重定向到登录之前的页面, 因为在302的时候URL Hash可能已经丢失了, 但是实际效果呢?
要先说明的一点是我们的用户中心是有两个版本的, 一个版本前端页面用的是JSP的, 另一个版本的做了前后端分离,只针对部分用户开放, 用的也是Vue-Router
两个版本的URL形式大概是这样的

1
2
3
4
// 旧版
http://XXXXX.com/sso/v1/login
// 新版
http://XXXXX.com/sso/v2/#/login

结果发现旧版的是能够正常跳转到登录前的页面, 而新版的URL Hash会完全丢失,
这是怎么回事呢?

npm publish如何过滤掉部分文件

发布时间 : 2018-12-17
发布 : 2018-12-17 浏览 :

npm publish 的时候会把当前目录里面所有的文件都publish到npm仓库中, 但是往往有一部分目录和文件不想发布上去, 比如项目的源码、 .editorconfigtslint.json 、 编译脚本等等信息, 发布出去对用户来说可能也没太大作用, 完全可以不发布这部分, 仅仅发布那些用户需要使用的相关文件, 那么该如何做呢?

JavaScript中for-in 和 for-of的区别

发布时间 : 2018-12-14
发布 : 2018-12-14 浏览 :

JS里面做循环最普通的是绝大多数编程语言都有的 for ([initialization]; [condition]; [final-expression]) , 比如我们遍历一个数组可能会这样写

1
2
3
for (var i = 0, len = arr.length; i < len; i++) {
...
}

可以看出来这样写写法上比较复杂, 需要计算length

HTTP仅指定Last-Modified和Date的缓存策略

发布时间 : 2018-12-11
发布 : 2018-12-11 浏览 :

最近一个系统新版本上线之后,有用户反馈接口出现异常, 看了一下发现调用的接口是之前旧版本的, 在新版本中对该接口地址做了修改, 原有的旧接口已经不能使用了。 初步怀疑是缓存设置出了问题。
先去看了一下HTML中引用的资源文件名称是否打了Hash以及Hash新旧版本是否有变化,

Windows运行ElasticSearch.bat出错问题解决方案

发布时间 : 2018-08-16
发布 : 2018-08-16 浏览 :

在Windows上下载了ElasticSearch的zip包, 解压之后命令行进入bin目录, 运行elasticsearch, 不能够成功运行
提示

1
\Java\jdk1.8.0_151\bin\java.exe" -cp "C:\Users\<User Name>\App\elasticsearch-6.2.0\lib*" "org.elasticsearch.tools.launchers.JvmOptionsParser" "C:\Users\<User Name>\App\elasticsearch-6.2.0\config\jvm.options" || echo jvm_options_parser_failed"`) was unexpected at this time.

墙内查看Github Gist内容

发布时间 : 2017-03-22
发布 : 2017-03-22 浏览 :

命令行查看

公司电脑不方便翻墙, 但是遇到个问题,正好Gist上有人演示怎么解决这个问题, 可是没有办法直接看到,想了想,之前用过C9提供的在线IDE, 环境位于墙外, 这个IDE自带terminal正好可以拿来用一用,
先需要去https://c9.io/ 登录,直接使用Github账号就可以, 登录了创建Workspace, 进入workspace后就能看到下方的Terminal

探索Bigpipe

发布时间 : 2016-12-01
发布 : 2016-12-01 浏览 :

网站加载速度的快慢对用户体验是否良好起着至关重要的作用,据研究

页面加载时间每增加1s,就会导致浏览量降低11%,客户满意度下降16%,转换率损失7%
如果3秒内,网页还未加载完毕,57%的用户会放弃
每延长1秒,亚马逊一年就会减少16亿美元销售额
74%的用户登录某网站时间超过5秒后就不会再登录这个网站
60%的用户希望手机上的页面加载时间不要超过3秒

由此可见 ,网页加载速度是多么的重要。页面加载速度的优化有很多种途径,本文探讨一下FaceBook提出的Bigpipe技术,该技术对于比较复杂的页面具有非常明显的作用。

JavaScript一些实用的技巧

发布时间 : 2016-08-10
发布 : 2016-08-10 浏览 :

最近看了很多开源项目的源码,感觉学到了不少东西,也学到了很多比较碎的技巧。JavaScript小技巧实在是太多,把这些小技巧和之前知道的一起总结一下,并且持续更新,权当是备忘。

Chrome调试动态创建的JS

发布时间 : 2016-08-06
发布 : 2016-08-06 浏览 :

Chrome开发者工具的Debug在开发JS时非常有用, 可是现在越来越多的JS框架都会在运行时动态添加或加载JS脚本, 比如很多JS模板引擎, 就可能添加生成的JS文件,这个时候调试起来并不像普通JS那样直接在Chrome Developer Tools 的Sources Tab下面直接看到,造成调试脚本的不便。

LeetCode算法题 -- Zigzag Conversion

发布时间 : 2016-07-06
发布 : 2016-07-06 浏览 :

原题:

The string “PAYPALISHIRING” is written in a zigzag pattern on a given number of rows like this: (you may want to display this pattern in a fixed font for better legibility)

1
2
3
P   A   H   N
A P L S I I G
Y I R