学习日志
coffee3139564344
这个作者很懒,什么都没留下…
展开
-
Android
前端进程可见进程线程不安全对象:带有状态的对象线程不安全变量尽量使用局部变量(方法里面)原创 2019-11-06 15:34:29 · 125 阅读 · 0 评论 -
压缩包
apk是androidpackage的缩写,也即使Android安装包,他是类似Symbian Sis或者Sisx的文件格式,通过将apk文件直接传递到android模拟器,或者android手机中即可进行安装。apk文件和sis一样,把android sdk编译的工程打包成一个安装程序文件,格式为apk。APK文件其实是zip格式,但后缀名被修改为apk,通过UnZip解压后,可以看到Dex文件,原创 2017-06-27 11:28:34 · 2574 阅读 · 0 评论 -
vue webpack.base.config.js
其中的webpack.base.conf.js是一个基础的的环境配置,里面写的个各个环境(包括开发环境,生产环境,测试环境)都需要的配置可以认为是公共部分。比如说入口文件和输出文件这类,然后开发环境的webpack的配置webpack.dev.conf.js中开头位置有这么一句:module.exports = merge(baseWebpackConfig, {原创 2017-06-27 11:24:23 · 4350 阅读 · 0 评论 -
es6
import命令具有提升的效果,会提升到整个模块的头部,首先执行,require则没有这个特性。import 是静态执行的,所以不能使用表达式和变量,这些只有在运行时才能得到结果。export default 命令使用import命令的时候,用户需要知道所要加载的变量名或者函数名,否则无法加载,但是用户肯定希望快速上手,为了给用户提供方便,就要用到export default命令,为模块指定默认的输原创 2017-06-27 11:23:22 · 333 阅读 · 0 评论 -
id定位
id属性还可以用来导航到文档中的特定位置,比如说有个名为example.html的文档中包含一个id属性值为myelement的元素,那么使用example.html#myelement这个url即可直接导航到这个元素。 url尾部#加上元素id值的部分称为url片段表示符原创 2017-06-27 11:22:57 · 553 阅读 · 0 评论 -
import和require
import命令会被 JavaScript 引擎静态分析,先于模块内的其他模块执行(叫做”连接“更合适)。所以,下面的代码会报错。// 报错 if (x === 2) { import MyModual from ‘./myModual’;}上面代码中,引擎处理import语句是在编译时,这时不会去分析或执行if语句,所以import语句放在if代码块之中毫无意义,因此会报句法错误,而不是执原创 2017-06-27 11:21:44 · 859 阅读 · 0 评论 -
异步加载
下面就是两种异步加载的语法。上面代码中,标签打开defer或async属性,脚本就会异步加载。渲染引擎遇到这一行命令,就会开始下载外部脚本,但不会等它下载和执行,而是直接执行后面的命令。defer与async的区别是:前者要等到整个页面正常渲染结束,才会执行;后者一旦下载完,渲染引擎就会中断渲染,执行这个脚本以后,再继续渲染。一句话,defer是“渲染完再执行”,async是“下载完就执行”。另外,原创 2017-06-27 11:20:41 · 251 阅读 · 0 评论 -
node
node 提供一些全局的函数,setTimeout(): 用于在指定毫秒之后,运行回调函数。实际的调用间隔,还取决于系统因素。间隔的毫秒数在1毫秒到2,147,483,647毫秒(约24.8天)之间。如果超过这个范围,会被自动改为1毫秒。该方法返回一个整数,代表这个新建定时器的编号。Node提供两个全局变量,都以两个下划线开头。* __filename:指向当前运行的脚本文件名。* __原创 2017-06-27 11:19:48 · 193 阅读 · 0 评论 -
vuex
vuex的状态不能直接别改变,改变他的唯一途径是,显示的提交— commit mutation ,这样使得我们可以的方便跟踪每一个状态的变化。原创 2017-06-27 11:19:21 · 381 阅读 · 0 评论 -
node
反对前端团队将前端开发划分为“js开发”和“页面重构”两种岗位这种‘粗粒度’的开发理念,对GUI软件开发的分工规划应该以功能为单位,而不是开发语言,对开发者的技术要求也应该是掌握完整的前端技术。前端是一种‘远程部署’,运行时增量下载的GUI软件。前端没有安装过程,其所需的资源构建工具在命令行中运行npm install 命令,会自动安装dependencies和devDependencies字段中的原创 2017-06-27 11:18:50 · 246 阅读 · 0 评论 -
mixin
定义Actions var Reflux = require(‘reflux’); var BookmarkActions = Reflux.createActions([‘fetch’]); module.exports = BookmarkActions;定义Storevar $ = require(‘jquery’); var Reflux = require(‘reflux’); v原创 2017-06-27 11:18:07 · 381 阅读 · 0 评论 -
webpack
更快捷的执行打包任务执行类似于node_modules/.bin/webpack这样的命令其实是比较烦人的,而且容易出错,不过值得庆幸的是npm可以引导任务的执行,对其进行配置后可以使用简单的npm start命令来代替这些繁琐的命令。在package.json中对npm的脚本部分进行相关的设置即可。注意: package.json中的脚原创 2017-06-27 11:25:59 · 187 阅读 · 0 评论 -
vue2.0 语法
1、v-else0.5”> Now you see mediv v-else Now you don’t dive-else 元素必须紧紧的跟在v-if或者v-else-if元素的后面,否则它将不会被识别。另一个新加的指令v-else-ifdiv v-if=”type ===a” a div div v-else-if=”type===b”原创 2017-06-27 11:27:46 · 749 阅读 · 0 评论 -
git 的一个报错
本地切换已经存在分支在团队中跟小伙伴一起开发的时候,小伙伴已经建立了新的分支,我想要本地切换到他创建的分支上去,于是git chekcout new branch。神奇的事情就在这个时候发生了,git 报错: error: pathspec ‘branch170628_foo’ did not match any file(s) known to git.英语过了6级的小伙伴一看就能明白,这句话原创 2017-08-28 20:21:53 · 469 阅读 · 0 评论 -
get和post
GET和POST有什么区别?网上的多数答案都是错的! 2017-06-14 木叶 倚楼听风雨的如月 如果有人问你,GET和POST,有什么区别?你会如何回答?我的经历 前几天有人问我这个问题。我说GET是用于获取数据的,POST,一般用于将数据发给服务器之用。这个答案好像并不是他想要的。于是他继续追问有没有别的区别?我说这就是个名字而已,如果服务器支持,他完全可以把GET改个名字叫G转载 2017-07-07 20:13:43 · 349 阅读 · 0 评论 -
sourcemap
一、从源码转换讲起JavaScript脚本正变得越来越复杂。大部分源码(尤其是各种函数库和框架)都要经过转换,才能投入生产环境。常见的源码转换,主要是以下三种情况: (1)压缩,减小体积。比如jQuery 1.9的源码,压缩前是252KB,压缩后是32KB。 (2)多个文件合并,减少HTTP请求数。 (3)其他语言编译成JavaScript。最常见的例子就是CoffeeScript。这三种原创 2017-07-07 20:12:51 · 459 阅读 · 1 评论 -
IIFE
常见格式:(function() { /* code */ })(); 解释:包围函数(function(){})的第一对括号向脚本返回未命名的函数,随后一对空括号立即执行返回的未命名函数,括号内为匿名函数的参数。 作用:可以用它创建命名空间,只要把自己所有的代码都写在这个特殊的函数包装内,那么外部就不能访问,除非你允许(变量前加上window,这样该函数或变量就成为全局)。各JavaScrip原创 2017-07-07 20:12:21 · 382 阅读 · 1 评论 -
组件间通信
在vue和react中父子组件之间的通信原来是相似的,首先,在vue和react中父组件向子组件通信都是通过父组件给子组件传递props的方式来进行的,并且两个框架都规定子组件不得改变父组件传过来的参数,如果一定要改变那么最好在子组件中声明一个依赖父组件props的局部变量,然后子组件向父组件传值的时候,在vue中是使用的所谓的‘自定义事件’你可以在子组件中点击一个按钮的时候调用一个子组件中的函数,原创 2017-07-07 20:11:49 · 441 阅读 · 1 评论 -
vue中遇到的坑
1 一个是eventHub的坑–重复监听的问题:解决方案监听之前先off掉2 路由的坑–不加replace会两个页面来回跳,无法正常的返回父级页面。3 vuejs对data中数组的原生方法进行了封装,所以在改变数组时能够触发视图更新,但是以下两种情况是无法触发视图的更新的:1 通过索引直接修改数组的元素,例如vm.items[0] = {title: 'title'} 2 无法直接修改数组的长度原创 2017-07-07 20:09:15 · 4626 阅读 · 0 评论 -
es6 和 common.js
ES6标准发布后,module成为标准,标准的使用是以export指令导出接口,以import引入模块,但是在我们一贯的node模块中,我们采用的是CommonJS规范,使用require引入模块,使用module.exports导出接口。ES6中的moduleES6发布的module并没有直接采用CommonJS,甚至连require都没有采用,也就是说require仍然只是node的一个私有的全原创 2017-06-27 11:30:20 · 507 阅读 · 0 评论 -
vue-cli 脚手架
build/ 此目录包含开发服务器和生产webpack构建的实际配置,通常不需要改变里面的文件,如果需要自己定义webpack的loader加载器,那么就去自己配置build/webpack.base.conf.js这个文件。config/index.js 是主要的配置文件,暴露了构建设置的一些常见的配置选项。src/ 这里是你的大部分应用程序代码所在的位置,如何构建此目录中的内容,主要原创 2017-06-27 11:29:44 · 228 阅读 · 0 评论 -
代理
express服务器提供静态文件服务,不过它还使用了http-proxy-middleware,一个http请求代理的中间件。前端开发过程中需要使用到后台的API的话,可以通过配置proxyTable来将相应的后台请求代理到专用的API服务器。原创 2017-06-27 11:29:13 · 221 阅读 · 0 评论 -
webpack
实际上,服务器和客户端没有任何区别,虽然这里没有按钮点击操作,也没有向文本文字键入的操作,但是在一个更高的层面上,事件正在发生。一个连接被建立——事件!数据通过连接接受——-事件!数据通过连接停止——事件!为什么我们可以直接写require(‘’) ,我们不能这么写的,我们之所以这么写,是因为webpack支持,webpack支持的模块化的方式是amd commonjs 和es6的模块化原创 2017-06-27 11:17:32 · 621 阅读 · 0 评论 -
杂
知道为什么在虚拟机内部安装npm依赖这么快的原因了,就是企业内部为了安全会搭建自己的npm仓库,原理就跟淘宝镜像做的事情是一样的,这已经是公开的秘密了,并且企业内部搭建的仓库可以不必跟远程的仓库实时的保持同步。Express的安装:npm install express -g完了之后会发现运行express –version报错说express不是内部可以执行的命令,原因是express升级了,将命原创 2017-06-27 11:16:55 · 257 阅读 · 0 评论 -
npm install 命令知多少
网看到一个答案,回答的很好:一个node package有两种依赖,一种是dependecies一种是devDependecies其中,前者是正常运行该包时候所需要的依赖项,而后者是开发的时候需要的依赖项,比如一些进行单元测试之类的包。如果你将包下载下来在包的根目录里面运行npm install 默认会安装两种依赖——(这也就是我们开发人员工作最常用的方式,一个人搭好项目框架将两种依赖写进pack原创 2017-06-29 10:19:51 · 410 阅读 · 0 评论 -
基于nodeJS的前端开发到底啥意思?
今天在回来的班车上突然顿悟了‘基于node的前端开发’这句话的奥义!这个长久以来困扰着自己的问题,一直在寻找的答案,也许我现在的理解也不见得就十分准确,但是可以肯定的是,对于现阶段的我自己来说是有帮助的,现在记录如下:上个周末去了上海书城去看了下关于node的书籍,在深入浅出node中看到: node之父最初只是想搞一个拥有对搞并发还有高性能并且不阻塞的服务器,然后综合很多因素,最后决定用js来实现原创 2017-06-29 09:40:17 · 12980 阅读 · 0 评论 -
记录一次webpack2的项目架构
1、npm init -y 生成package.json项目描述文件。2、npm install webpack –save-dev 下载webpack并将其安装到开发环境中。3、npm install babel-loader babel-core –save-dev 下载安装babel转码工具并将其添加到开发环境中。4、npm install css-loader style-loader –s原创 2017-06-29 09:39:27 · 475 阅读 · 0 评论 -
HashSet和TreeSet 分别实现对象的排序操作
一、首先要明确Set子接口与list子接口的不同,那就是list子接口是可以保存重复的数据的,而Set子接口是不能保存重复的数据的。利用HashSet和TreeSet两个子类来实现Set接口的功能。1、HashSet与TreeSet接口的一点不同,HashSet 保存的数据是无序的,TreeSet保存的数据是有序的,所以如果要想保存的数据有序应该使用TreeSet子类。2...原创 2015-12-21 00:34:12 · 6793 阅读 · 0 评论 -
List 子接口删除自定义类以及ArrayList与Vector的区别?
解释ArrayList与Vector的区别?1、首先这两个类都是List接口的子类;2、Vector类是在jdk1.0的时候就已经存在的是(较早),里面所提供的都是同步方法,所以属于线程安全的操作类。3、ArrayList类是在jdk1.2的时候提供的,里面的方法都是异步的操作方法,所以属于非线程安全的操作类。在日常的开发中用的最多的是ArrayList.在list...原创 2015-12-20 22:12:33 · 301 阅读 · 0 评论 -
超文本语言
什么是超文本语言?标记语言的威力在于其强大的搜集能力,它可以将收集来的文档组合成一个完整的信息库,并且可以将信息库与世界上的其他文档集合连接起来。这样的话,读者不仅可以完全控制文档在屏幕的显示,还可以通过超链接来控制浏览信息的顺序。这就是HTML 和XHTML中的ht(超文本 hyper text) ,就是它将整个web网络连接起来。超文本的...原创 2015-11-30 23:46:02 · 1633 阅读 · 0 评论 -
学习笔记
今天写一些java中新学的知识1 数组 ,数组也是一种类型,int[] 和int 是两种不同的类型,数组中的元素必须是同一种类型的数据。数组有两种初始化的方法:静态初始化和动态初始化 (1) 静态初始化:初始化的时候由程序员显示的指定每个数组元素的初始值,由系统决定数组的长度。 (2) 动态初始化:初始化的时候程序员只指定数组的长度,由系统为数组元...原创 2015-11-23 19:56:22 · 217 阅读 · 0 评论 -
数据库
oracle 数据库中的有两个最大权限的用户 分别是sys 和system 操作数据库的方法 :1利用命令行窗口在运行 中输入 sqlplus 输入用户名和密码以及连接的数据库名字 格式如下用户名/密码@orcl2 利用第三方数据库管理工具 有:pl/sql server ,toad,DBvisualoracle 只有一个数据库 但是可以有多个表空间 ...原创 2015-11-13 00:08:27 · 225 阅读 · 0 评论 -
欢迎使用CSDN-markdown编辑器
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl原创 2015-11-09 20:45:15 · 198 阅读 · 0 评论 -
Cordavo和PhoneGap
理清二者的关系开发的一个基于React框架的移动端APP中用到了cordova方面的东西,所以就网上查了一下,这方面的资料。方便日后温习。 开始呢是一次苹果公司的ISO开发者大会上,一群很屌的大神产生了一个大胆的想法,他们想要自己写一个工具来填补web开发和iOS开发之间的不足,并提出一个响亮的口号:“Bridging the gap between the web and the iPhone原创 2017-06-20 15:16:31 · 494 阅读 · 0 评论 -
浏览器原理
js线程浏览器的内核是多线程的,它们在内核制控下相互配合以保持同步,一个浏览器至少实现三个常驻线程:javascript引擎线程,GUI渲染线程,浏览器事件触发线程。 javascript执行顺序:http://bbs.html5cn.org/thread-80116-1-1.html JS一定要放在Body的最底部么:http://www.html5cn.org/article-9333-1.原创 2017-06-20 15:27:40 · 203 阅读 · 0 评论 -
flux
看完flux 其实,于reflux的不同也就是在于他多了一个dispatcher嘛,reflux更加精简,去掉了flux中的dispatcher的角色,而是将它的功能分配给了action和store里面去了原创 2017-06-27 11:15:59 · 239 阅读 · 0 评论 -
babel-ployfill
babel默认只是转换新的JavaScript句法,而不转换新的API 比如Iterator Generator Set Maps Proxy Relfact Symbol Promise 等全局对象,以及一些定义在全局对象上的方法,都不会转码。举例来说,es6在array对象上新增了Array.form方法。babel就不会转码这个方法。如果想让这个方法运行,必须使用babel转载 2017-06-27 11:15:36 · 1509 阅读 · 0 评论 -
Cordavo
Cordova的主要组成部分有三块儿Web APP : 这是存放非应用程序的代码的地方,体现的是你的具体业务逻辑模块。应用的实现是通过web页面,默认的本地的文件名称是index.html这个本地文件应用css javascript 图片,媒体和其他运行需要的资源。应用执行在原生应用包装的WebView中,这个原生应用是你分发到appstores中的。WebView: Cordova翻译 2017-06-27 11:14:43 · 382 阅读 · 0 评论 -
$.ajax()问题
遇到个奇葩又经典的问题:$.ajax()方法明明请求成功了,数据都在preview中显示出来了,可就是不执行success方法,而是执行了error方法,你说气人不气人,网络上找到了好多同胞,都是是这个问题,现在也简单的记录一下问题的原因嘛不外乎这么几种:1是跨域了,网上真的有人说是因为跨域了,把数据改成jsonp请求方式就解决了,我真是佩服了,如果是跨域了,请求还能发出去吗?preview中还能看原创 2017-06-26 22:15:16 · 208 阅读 · 0 评论 -
接着昨晚的写。。。
上回说到我们可以通过重写请求头的技术,来绕过浏览器的限制,今晚来看令一个在请求头中设置的头信息—–内容缓存Cache-Control一些浏览器会缓存通过Ajax请求所获得的内容,在浏览器回话期间不会再次的请求它。我们可以通过设置禁止缓存的头信息可以达到,当请求的内容发生了改变的时候,就会在下一次请求文档时体现出来需要做的就是在open方法和send方法之间加一句httpRequest.setRequ转载 2017-06-26 21:56:50 · 185 阅读 · 0 评论