V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  qgy18  ›  全部回复第 33 页 / 共 55 页
回复总数  1084
1 ... 29  30  31  32  33  34  35  36  37  38 ... 55  
2016-01-30 12:41:08 +08:00
回复了 xiaodaigou 创建的主题 前端开发 @qgy18 贵站怎么做的优化啊,速度快到哭
@Troevil 另外,如果这个 cookie 标记被无意设置为 HTTP Only ,那么 JS 就清不掉它了。然后刷新后服务端还是会认为本地有 localStorage 缓存,就会无限刷新。这个问题正常使用中肯定不会出现,但是我们评估 localStorage 方案时考虑过。

我刚录了一个 gif 演示如何玩坏百度的 localStorage 方案(纯属无聊,这种问题各家都不会处理):

http://i.imgur.com/hXJmvAH.gifv
2016-01-30 12:32:43 +08:00
回复了 xiaodaigou 创建的主题 前端开发 @qgy18 贵站怎么做的优化啊,速度快到哭
@Troevil 非常正确!
如果 cookie 标记被清了,服务端无法知道本地 localStorage 里还有缓存,就会输出全量。

但是!如果 cookie 标记还在,但是 localStorage 被清除了,服务端就不知道该输出全量了,只能依靠 JS ,在读不到本地 localStorage 时清掉本地 cookie 标记再刷新。

针对这个问题我们之前做过一些策略,例如发现出现这种情况,就额外存一个 Cookie 标记,针对有这个标记的用户一段时间内只输出全量。后面做了一个统计,发现几乎没有这种情况发生。
2016-01-30 11:40:51 +08:00
回复了 xiaodaigou 创建的主题 前端开发 @qgy18 贵站怎么做的优化啊,速度快到哭
@Troevil 不需要,第一次服务端输出:
<style id="all_css">...</style><script>L.h2l("all_css","all_css")</script>

第二次服务端输出:
<script>L.l2h("all_css:2")</script>

也就是第一次就是正常的资源内联,顺带存到 localStorage 里;第二次才是走本地读取。
2016-01-30 11:05:06 +08:00
回复了 xiaodaigou 创建的主题 前端开发 @qgy18 贵站怎么做的优化啊,速度快到哭
@chemzqm
1 、为什么首次访问用户需要重新加载两次页面?这个难以想象,如果有这种严重问题,这个方案如何能发布上线。

2 、这个方案我们业务中只针对移动端使用。你也可以看到百度 / 神马移动搜索都采用了这个方案。这是移动端头部外链对性能影响特别大,会显著增加白屏时间。所以一般在移动端,宁可将资源完全内联来牺牲缓存,也不会在头部引入外链。 HTTP/2 的调研一直在做,但是在移动端普及还不理想,尤其是在 Android 端,只有 Chrome 47 才支持,随着时间的推移,优化手段也会随之改进的。对了, HTTP/2 的 Server Push 就是用来解决资源内联的问题,但 Server Push 也不是没有弊端,具体可以看我这几篇文章:
https://imququ.com/post/http2-and-wpo-1.html
https://imququ.com/post/server-push-in-http2.html
https://imququ.com/post/cache-aware-server-push-in-h2o.html
https://imququ.com/post/golomb-coded-sets.html

3 、前面说过,我们业务中实际的方案,如果 A 页面在 localStorage 中存放了 1 、 2 两个资源; B 页面需要 1 、 2 、 3 三个资源时,服务端只会输出 3 这个资源的全量内联。因为我们有高度压缩的 cookie 来存放资源标识及对应版本信息。

4 、确实,从字符串 eval / new Function 执行的代码不好调试。但我们有参数,禁用所有 localStorage 策略,这时候页面资源就跟普通内联没区别了。

5 、我们业务中有 noscript 标签,如果禁用 cookie ,会跳转到极速版——极速版不需要任何 JS 就可以工作得很好——因为我们正常版禁用了 JS ,就算 css 能加载也基本无法使用,交互太多了。

我的博客是我的试验田,我用在我博客中的策略并不一定适合用在业务中——这个我之前多次强调过。

而在业务中是否启用某个策略,需要更完善的考虑、数据支持以及配套设施。例如我们业务代码中所有资源都是外链形式书写,如果要编译为内联,加一个自定义属性即可;如果要内联 + localStorage ,就换成另外的自定义属性;如果什么都不加,那最后就会自动压缩合并 + 发布到 CDN 。
@quericy 感谢支持!

楼主这个问题正好跟我负责的业务息息相关,就站出来做为工作人员回复了几条。

其实我在 V2EX 混了好久,我的博客也运行了那么多年,但我几乎从没透露我工作上负责的具体业务,甚至都很少提我所在的公司,因为我一直希望尽可能在讨论技术问题时能就事论事,简单而纯粹。
2016-01-30 10:18:44 +08:00
回复了 xiaodaigou 创建的主题 前端开发 @qgy18 贵站怎么做的优化啊,速度快到哭
@aivier 可以更新的,我有 cookie 记录资源当前的版本。你清除那个名为 v 的 cookie ,或者改一下它的值,服务端就会内联输出全量资源了。
我的博客用的是比较老的方案,所有资源共享一个版本,因为我的资源个数少,也不经常变动。我们的业务中用的是改进后的方案,每个资源都有单独的版本,资源名一个字节,版本号一个字节,用 70 进制确保总体上 cookie 不会太长。
总的来说,资源存 localstorage 有很多细节要处理,例如如何保证在 cookie 被禁用 / localstorage 被禁用 / localstorage 被写满 / cookie 中的版本号存在,但 localstorage 丢失等等情况下都能正常工作。
另外, js 代码存在 localstorage 还有一个风险:如果网站有 xss ,可以修改用户 localstorage ,导致 xss 生效时间被拉长。这个问题我也解决了,大家可以改下我博客 all_js 那个 localstorage 内容,不会生效的(仅限最新的 chrome 和 firefox 下)。
手机打字太累,先写这么多。
2016-01-30 00:37:22 +08:00
回复了 xiaodaigou 创建的主题 前端开发 @qgy18 贵站怎么做的优化啊,速度快到哭
https://imququ.com/post/summary-of-my-blog-optimization.html
其实还有好多蛋疼的策略,但我今天头疼得厉害,明天如果好了再来补充!
2016-01-29 23:36:10 +08:00
回复了 ayumiymk 创建的主题 程序员 程序员应该如何注意自己的身体健康
我这几天病得很严重,输液两天一点没好转,在家躺两天头痛得要炸了,吃去痛片也没用。我基本十几年都没打过点滴。

我准备等好了之后写写我这些年做死的事迹,先希望快点好吧。
@luo7 好的,我尽快问问!最近病了,还在 306 医院回家的出租车上,头痛得要炸了。
@DesignerSkyline 不要叫我叔。。。虽然叔是 86 年的,还想装几年嫩。
@20150517 纠错肯定是靠程序挖的,但是有些 query 本身量不大没被挖出来,人工干预也很重要,相辅相成吧。
@DesignerSkyline 这个我问一下 spider 团队再答复你。
话说我的博客在国内几家搜索引擎收录都不怎么样。
国内搜索引擎对用户点击多和大站权重高一些; Google 英文对权威和原创权重更高; Google 中文被国内 SEO 搞得乱七八糟的,有些 query 结果完全没法看。
@20150517 已经临时解决,楼主可以再试试。
我目前在负责 360 好搜的前端团队。
我们肯定无法做到完美,但每个问题都会去想办法解决。
搜「谷歌文档」能排第一。搜「 Google Doc 」确实不好,正在查。
2016-01-29 18:50:34 +08:00
回复了 niuer 创建的主题 酷工作 牛厂招聘——七牛云
七牛业务哪一块需要爬虫?
2016-01-29 14:12:03 +08:00
回复了 niuer 创建的主题 推广 七牛海外 CDN 全面降价
@yeyeye 一定要带上 referrer 也可以,在 HTTPS 页面加上这个 meta ,至少 Chrome 支持:
<meta name="referrer" content="always" >
2016-01-29 13:15:47 +08:00
回复了 niuer 创建的主题 推广 七牛海外 CDN 全面降价
@gongjianhui 还要提供证书,你们能部署一套 CloudFlare 开源的 Keyless SSL 服务么?
2016-01-29 13:14:18 +08:00
回复了 niuer 创建的主题 推广 七牛海外 CDN 全面降价
@yeyeye 说明百度图片防盗链允许空 referrer 。 https 网站引用的 http 资源,默认不带 referrer 过去。
2016-01-28 23:43:59 +08:00
回复了 4faramita 创建的主题 分享发现 Chrome for iOS 去掉了「流量节省程序」
可能跟换成了 WKWebView 有关,另外感觉这一版 chrome bug 好多。
2016-01-27 14:49:18 +08:00
回复了 xiaoz 创建的主题 NGINX 请教一个 nginx 反向代理 https 的问题?
Nginx 不支持正向代理 HTTPS ,因为它不支持 CONNECT ,反代 HTTPS 没有任何问题啊。

proxy_pass 那里改成源站 HTTPS 地址即可,你是怎么配的?
1 ... 29  30  31  32  33  34  35  36  37  38 ... 55  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2479 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 24ms · UTC 15:35 · PVG 23:35 · LAX 07:35 · JFK 10:35
Developed with CodeLauncher
♥ Do have faith in what you're doing.