Vue

Vue学习要点记录:

Vue 实例暴露了一些有用的实例属性与方法,这些属性与方法都有前缀$,与代理的 data 属性区分。
Vue.js 没有“控制器”的概念。组件的自定义逻辑可以分布在这些钩子中。
钩子:create, mounted、 updated 、destroyed等。
在底层的实现上, Vue 将模板编译成虚拟 DOM 渲染函数。结合响应系统,在应用状态改变时, Vue 能够智能地计算出重新渲染组件的最小代价并应用到 DOM 操作上。如果熟悉虚拟 DOM 并且偏爱 JavaScript 的原始力量,也可以不用模板,直接写渲染(render)函数,使用可选的 JSX 语法。
Mustache语法,胡子语法:{{}}
v-bind:指令可以省略为一个冒号
v-click指令可以省略为一个@
模板内的表达式只能包含单个表达式,应只用于简单的运算。
计算属性:在computed中声明并实现属性值的计算方法。与methods的区别是:计算属性是基于它们的依赖进行缓存的。计算属性只有在它的相关依赖发生改变时才会重新求值。

ES6:

ES6提供的许多新特性。这些新特性中包含一些简便书写的方法:
箭头函数
默认参数
不定参数
解构赋值
模板字条串

ECMAScript 6 入门
http://es6.ruanyifeng.com/

AngularJS

一个AngularJS web应用中只能出现一个ng-app指令,它相当于main方法。

浏览器

插件架构:NPAPI和PPAPI

NPAPI是当今最流行的插件架构,由网景开发,后Mozilla维护,几乎所有浏览器都支持,不过存在很大的安全隐患,插件可以窃取系统底层权限,发起恶意攻击。
2010年,Google在原有网景NPAPI(Netscape Plugin API)基础上开发了新的PPAPI(Pepper Plugin API),将外挂插件全部放到沙盒里运行。最新版本的firefox和chrome都不支持大多数NPAPI插件了。

播放rtmp

HTML5不支持rtmp,由flash插件来支持播放。
下载Adobe Flash Player,对不同的浏览器提供了支持不同类型API的插件版本。
http://get.adobe.com/cn/flashplayer/otherversions/
在Windows上,vlc安装过程中可以看到只提供了Mozilla和ActivX插件勾选。
在Ubuntu上,下载flash_player_npapi_linux.x86_64.tar.gz解压后,拷贝后重启firefox。

sudo cp libflashplayer.so /usr/lib/firefox-addons/plugins/libflashplayer.so

rtsp协议流数据在前端播放,没有特别好的解决方法,需要在本机装一个vlc 插件,依靠这个插件才能让 RTSP 协议 在网页上能播放,但是目前高版本的 Chrome浏览器已不支持 NPAPI 插件,也就是说高版本的 Chrome 浏览器还是不能播放(46 以上的版本都不行)。
对于rtsp,由于新版本的ff、chrome都不支持vlc插件,所以暂只能考虑使用旧版本。
http://www.cnblogs.com/qiaojie/p/5733335.html

Firefox 52.0 分支作为长期支持版本,将会持续到 2018 年三四月份,从该版本起,Firefox 将不再支持除了 Flash 插件之外的所有 NPAPI 插件。
Chrome uses PPAPI-based plugins ONLY now, while vlc-browser-plugin is NPAPI-based

Linux版本的chrome在版本35时已经没有enable-npapi选项了。
Since version 35 NPAPI is no longer supported in Linux versions of Chrome and Chromium. In the Windows versions you can still enable it on the page: chrome://flags/#enable-npapi.

播放rtsp

在angular或vue等框架中使用vcl插件播放rtsp视频时,可以js动态操作vlc播放,如果使用双括号表达式给mrl赋值,可能在firefox中产生每次进入视频页面都需要重新激活插件。

<object type='application/x-vlc-plugin' pluginspage="http://www.videolan.org/" id='vlc1' events='false' width="720" height="410">
  <param name='mrl' value='rtsp://u.itvitv.com/jpm1' />
  <param name='volume' value='0' />
  <param name='autoplay' value='true' />
  <param name='loop' value='false' />
  <param name='fullscreen' value='true' />
  <param name='controls' value='false' />
</object>
var vlc=document.getElementById("vlc1");
var id=vlc.playlist.add($scope.videoUrl);
vlc.playlist.playItem(id);

APP开发架构

NativeApp
跨平台解决方案:
WebApp

facebook-reactnative

PhoneGap
使用iOS、Android等原生的WebView控件,用浏览器,基本上不能混合开发
Phonegap在每个移动平台(iOS、android、blackberry等)中都实现了一套后台框架,分别与各平台系统API进行交互,从而调用其native API,对应用开发人员提供了统一的JS调用接口,即phonegap API,开发人员只需要采用html、js、css等web技术即可进行移动平台快速开发。
Phonegap的“一次编写,到处运行”是指应用程序开发只需编写前端代码,并且可完全复用到其他平台,复用到其他平台时需要另外搭建相应的开发环境才能运行。

android平台phonegap框架实现原理
http://blog.csdn.net/wuruixn/article/details/7405175

dist是指distribution,发布,
dest则是destination,目的。

jQuery

http://www.w3school.com.cn/jquery/index.asp

data-* 属性是 HTML5 中的新属性。
data-* 属性用于存储页面或应用程序的私有自定义数据。
data-* 属性赋予我们在所有 HTML 元素上嵌入自定义 data 属性的能力。
属性名不应该包含任何大写字母,并且在前缀 “data-” 之后必须有至少一个字符

Jquery中children、find区别
通过children获取的是该元素的下级元素,而通过find获取的是该元素的下级所有元素。
用children:$(“#tb>tbody”).children(“tr:last”).children(“td:eq(1)”).html()
用find:$(“#tb>tbody”).find(“tr:eq(1) td:eq(1)”).html()

javascript不支持函数重载

css

1.CSS之派生选择器(上下文选择器)
上下文选择器的情况有三种:后代选择器,子元素选择器,相邻兄弟选择器。
后代选择器,很重要的一点是第一个参数和第二个参数之间的代数是可以无限的。 用空格分隔
子选择器只会选择某个元素的子元素,而不会扩大到任意的后代元素。用>分隔
相邻兄弟选择器会选择某一元素紧随其后的元素,但是前提是他们拥有相同的父级。用+分隔

http://nanaapril.blogbus.com/logs/225612532.html

2.更多高级css选择器
http://www.qianduan.net/taming-advanced-css-selectors.html
http://www.w3cplus.com/css/advanced-html-css-lesson3-complex-selectors.html

css3

1.边框图片border-image
http://blog.csdn.net/lee_magnum/article/details/12056471

border-width: 4px;
-webkit-border-image: url(“sharebg@2x.png”) 10;
width:290px;

visibility

CSS visibility 属性的定义
默认值: visible
继承性: yes
visibility只是让元素不可见, 元素仍占据着空间。这个属性是可以继承的,继承是指当子元素没有显式设置visibility时继承,但当给一个子元素显式设置成visible时这个子元素就可见了。
确保子元素都隐藏的方法是使用display:none,就不会有上面困扰了。

html转义字符

HTML中空格的转义字符有如下几种:
1. &nbsp;&160#; 不断行的空白(1个字符宽度)
2. &ensp;&8194#; 半个空白(1个字符宽度)
3. &emsp;&8195#; 一个空白(2个字符宽度)
4. &thinsp;&8201#; 窄空白(小于1个字符宽度)

html常用的特殊符号
http://www.jb51.net/onlineread/htmlchar.htm
http://itnote.lone.tw/WEB/HTML/081020-02.htm

 

http://www.w3school.com.cn/html/html_entities.asp

&times;表示乘号