陈映平 于 4个月前发表 453 0 1
引言 稍微了解HTTP协议的前端同学,相比对 Cache-Control 不会感到陌生,性能优化时经常都会跟它打交道。 常见的值有有 private 、 public 、 no-store 、 no-cache 、 must-revalidate 、 max-age 等。 各个取值所代表的含义,网上总结挺多的,这里就不打算再进行逐一介绍,感兴趣的可以一起探讨交流。 本文仅挑 no-cache 、 must-revalidate 这两个进行值进行探究对比。在项目实践中,这两个值用的比较多,也比较容易搞混。 Cache-Control: no-cache Cache-Control: max-age=60, must-revalidate 传送门: RFC2616关于Cache-Control首部的介绍 [https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9] 。 如果对论证过程不感兴趣,也可以直接跳到“对比结论”小节查看结论。 NO-CACHE、MUST-REVALIDATE简介
4个月前
HTTP网络
否子戈 于 4个月前发表 645 0 1
ES6真是颠覆JavaScript的东西,随便翻一个新特性出来,就让自以为是的老古董们傻眼跳楼。在之前接触ember.js的时候,接触到了yield,嫩是半天没明白,yield到底是什么,想要实现什么目的。后来在看ES6的东西的时候,总算好像知道了一点,迫不及待的写出来。 在MDN上,对yield的第一句解释就是: The yield keyword is used to pause and resume a generator function. // yield这个关键字是用来暂停和恢复一个遍历器函数(的运行)的。 这也就是yield的所有解释了,可谓大道至简,然并卵,深层的意思不去挖掘,根本还是没法用它,还是老老实实做老古董。 关键字YIELD 没错,yield是个关键字,不是函数。关键字用来干啥?它的作用是“命令”。和var不同,不是用来声明,但是和return一样,用来告知程序某种状态,return告诉程序要返回什么值(也意味着结束,结束的时候才会返回值嘛),而yield告诉程序当前的状态值,而且你运行到这里给我暂停一下。 因为yield是命令型的关键字,所以它的用法是:
4个月前
javascript技术
袁飞翔 于 4个月前发表 928 0 0
最近入手了一台腾讯云机子,用于团队社区站点的建设,站点架构: * 数据库服务:mongodb * 后台:nodejs + express * 接入:nginx 整个购买到部署的要点步骤: * 服务器购买 * nginx 编译安装配置 * node 安装 * mongodb 安装 * server部署 服务器购买 [http://7tszky.com1.z0.glb.clouddn.com/FpEWgIEkwq6d8npb5jYe2p-SNWWH] 从腾讯云的首页找到购买入口。(弱弱的说一句,云太多了,企鹅云发展好快~~~) [http://7tszky.com1.z0.glb.clouddn.com/FuMQS85aImdMC7q0ZMZHynFSBWF0] 按需选择自己的配置,包年可以优惠只需付10个月。最终我们的配置 [http://7tszky.com1.z0.glb.clouddn.com/FgDwNLWJ2PbRT6xGTsFV5QoAd1WD]
4个月前
运营
link ,除了分享,也是知识管理。 于 4个月前发表 614 4 1
网络序?本地序?傻傻分不清楚。。。 这个问题源于最近做的一个项目,需要用Node.js进行socket网络编程,涉及到使用TCP/UDP通过自定义的二进制数据序列化协议与android/iOS客户端进行通信。 当协商通信协议时,对接的客户端同学告诉我在发送数据的时候要将要发送的Buffer从本地序转换为网络序,当收到客户端的回包时,需要将收到的Buffer从网络序转换为本地序。 作为一个前端工程师,听到上面那段话,我脑海中的画面是: 黑人问号 [http://img.blog.csdn.net/20161012111816743] 网络序?本地序?傻傻分不清楚啊! 于是我决定翻开下面这本书,来一探究竟: CSAPP [http://img.blog.csdn.net/20161012113307469] 什么是网络序和本地序? 所谓的网络序和本地序其实就是一个跨越多个字节的程序对象(在Node.js中可以简单的认为是一个长度大于1的Buffer对象)在存储器中的存储顺序,在了解这两种字节顺序之前,我们来复习一下计算机的寻址规则。 寻址
4个月前
nodeJS全栈
黄龙 于 4个月前发表 1032 1 0
WHISTLEJS https://github.com/avwo/whistle [https://github.com/avwo/whistle] whistle是用Node实现的类似Fiddler的web调试代理工具,支持查看和修改HTTP(S)、Websocket请求响应数据,且支持跨平台(Windows、Mac、Linux等可以安装Node的操作系统)。IMWEB团队avenwu作品。 第一步 安装 npm i -g whistle 第二步 启动 w2 run 第三步 配置浏览器代理 如果你使用SwitchyOmega就很容易了 * 新建情景模式 * 命名whistle * 代理协议 HTTP * 代理服务器: 127.0.0.1 * 代理端口: 8899 把浏览器代理切换到whistle就可以进入下一步了。 第四步 打开网页,开始配置 http://127.0.0.1:8899/#rules [http://127.0.0.1:8899/#rules]
4个月前
调试
朱灵子 于 4个月前发表 764 0 0
React Native 用IOS自带的JavaScriptCore作为JS的解析引擎,普通的JS-OC通信就是React Native在OC定义一个模块方法,JS可以直接调用这个模块方法并还可以无缝衔接回调。 具体的接口调用实现方法如下所示: * 将OC注册进来的模块取出,调用模块中的对应函数,且将参数传入 var RCTVideo = require('react-native').NativeModules.RCTVideo; RCTVideo.addVideoTitle('video title'); * 利用回调参数得到访问OC的函数,并得到其返回值 RCTVideo.RNCallbackEvent('dsb',(error,callBackEvents)=>{ if (error) { console.error(error); } else { AlertIOS.alert('返回值:'+JSON.stringify(callBackEvents)); } }); * 利用回调参数得到访问OC的函数,并得到其返回值
4个月前
移动开发
吴浩麟 于 5个月前发表 592 0 0
前言 在传统的WEB开发中,当与用户或服务器发生交互时,需要我们手动获取数据并更新DOM,这个过程是繁琐的、易错的。 特别是当页面功能过于复杂时,我们既要关注数据的变化,又要维护DOM的更新,这样写出来的代码是很难维护的。 新一代的框架或库,例如Angular、React、Vue等等让我们的关注点只在数据上,当数据更新时,这些框架/库会帮我们更新DOM。 那么这里就有两个很重要的问题了:当数据变化时,这些框架/库是如何感知到的?当我们连续更新数据时,这些框架/库如何避免连续更新DOM,而是进行批量更新? 带着这两个问题,我将简要分析一下React、Angular1、Angular2及Vue的实现机制。 REACT VIRTUAL DOM alt [http://yuyang041060120.github.io/img/change-detection-and-batch-update/virtual-dom.svg]
5个月前
性能
zzbozheng 于 5个月前发表 873 0 0
最近听到有同学在讨论关于数据上传遇到离线的问题,因此在这里介绍一下PouchDB。 PouchDB 是一个开源的javascript数据库,他的设计借鉴于Apache CouchDB,我们可以使用他来打造浏览器的离线应用。 如果你要使用PouchDB,那么建议你的远程数据库使用CouchDB,那样的话可以更好地协调起来。 建立数据库 const localDB = new PouchDB('docs'); const remoteDB = new PouchDB('http://localhost:5984/docs'); 同步本地数据到远程数据库 PouchDB API 提供了方法可以让你备份本地数据到服务器: sync。 live: true 表示如果数据一发生变更,就立即同步到远程服务器。 retry: true 表示如果在离线状态下导致同步失败之后,会自动重新尝试重连,直到连接建立成功为止。该选项在 live:true 时生效。代码如下: const sync = localDB.sync(remoteDB, { live: true, retry: true });
5个月前
javascript技术
赛冷思 ,爱编程,更爱前端。 于 5个月前发表 478 0 0
近来重装了一下wamp,索性记录一下,wamp安装完后,我的常用配置。首先,肯定要修改默认的空密码;其次,便要配置虚拟站点,因为当项目多的时候,每个项目分配成一个站点,对于开发来说,很方便管理。其实网上已有很多这方面的文章,但大部分说的都不够详细,有的只能在www目录内,所以借着这次重装wamp的机会整理一下笔记,分享一下,已留后用 ! 修改WAMP空密码 启动wamp后,左键点击wamp图标->MySQL->MySQL控制台,然后会提示让输入密码,安装完后,密码是空的,所以直接回车便可进入MySQL,接下来具体操作如下: use mysql;//选择数据库 updateusersetpassword=PASSWORD('新密码') whereuser='root';//修改密码 flushprivileges;//刷新权限表,不然不会生效 最后输入quit;退出,然后再重新进来,提示输入密码,再直接回车就进不来了,而输入刚才修改的密码便可。 配置虚拟站点 首先需要开启虚拟模块,然后还要开启允许在www目录之外的目录设置站点的权限。
5个月前
工具建设
赛冷思 ,爱编程,更爱前端。 于 5个月前发表 1283 0 2
最近学习了一种经典布局,固定左侧或右侧的宽度,另一侧自适应宽度,此种布局挺常用,尤其是像后台,大部分都是采用这种结构,还比如像订餐类的APP,进入商家的时候,会出现一堆饭的列表,左侧是饭的分类,右侧是饭的列表等等。反正挺实用,值得收藏! 先看HTML代码 ​<!doctype html><html><head><metacharset="utf-8"><metaname="description"content=""><metaname="viewport"content="width=device-width, initial-scale=1"><title>左侧固定,右侧自适应</title></head><body><h1>左侧固定,右侧自适应布局</h1><divclass="left-fixed_right-auto"><divclass="left"> 左侧定宽左侧定宽左侧定宽左侧定宽左侧定宽左侧定宽 </div><divclass="right"><divclass="right-content">
5个月前
HTML&HTML5
王军 于 5个月前发表 597 0 1
本文为 H5EDU 机构官方 HTML5培训 教程,主要介绍:JavaScript强化教程 —— 保留关键字 在 JavaScript中,一些标识符是保留关键字,不能用作变量名或函数名。 JavaScript标准 所有的现代浏览器完全支持 ECMAScript 3(ES3,JavaScript的第三版,从 1999 年开始)。 ECMAScript 4(ES4)未通过。 ECMAScript 5(ES5,2009 年发布),是 JavaScript最新的官方版本。 随着时间的推移,我们开始看到,所有的现代浏览器已经完全支持 ES5。 JavaScript保留关键字 Javascript的保留关键字不可以用作变量、标签或者函数名。有些保留关键字是作为 Javascript以后扩展使用。 abstract arguments
5个月前
HTML&HTML5
link ,除了分享,也是知识管理。 于 5个月前发表 1682 4 0
IMWebConf [http://img.blog.csdn.net/20160914093143347] 9月10号,IMWeb团队在腾讯大厦成功举办了IMWebConf 2016!进行了一次十分精彩的分享沙龙!一、一句话总结 【影响力范围】 * 听众来自腾讯、爱奇艺、OPPO、大疆、迅雷、京东、金蝶软件等 超过70家 国内互联网公司,不少听众来自武汉、上海、珠海等地。 * 超过200名 同学参加了本次IMWebConf。 * 而本次IMWebConf在腾讯课堂开设的线上直播课程中,报名人数 达到1181人 。【活动效果】 * 会后反馈中 97.8% 的同学表示自己学到了东西。 * 会后反馈中 98.9% 的同学对本次IMWebConf的内容的实用性感到满意。 * 会后反馈中 83.9% 的同学对本次IMWebConf的组织、通知形式感到满意。 二、IMWEBCONF主会场 本次IMWebConf除了在腾大二楼多功能厅设置了 主会场 外,还在腾大24楼设置了 React 、 NodeJS 、 综合 三大分会场。
5个月前
运营