写这篇文时以下非常有用的device api并未被所有浏览器(特别是mobile browser)实现,期待各种新版本的新实现。
需要用时,在 caniuse.com 查阅就知道当前这个api是否可用。
写这篇文时以下非常有用的device api并未被所有浏览器(特别是mobile browser)实现,期待各种新版本的新实现。
需要用时,在 caniuse.com 查阅就知道当前这个api是否可用。
按着 mongodb官网 教程安装好后,练习一下CRUD(增加、读取、更新、删除)操作。
// 我把数据库保存在了 ~/nosql/mongodb下
$ cd nosql/mongodb/bin
$ sudo ./mongod
这样,mongodb就启动了,接着是创建数据库。进行简单的CRUD。
$ ./mongo
// $ help
// 显示已有的数据库
$ show dbs
// 切换数据库,这里用了新的数据库laispace,则自动创建
$ use laispace
// 注意这时候没有插入数据,但实际上已经创建了
// db即表示laispace数据库,先建立users文档并插入一个新用户
$ var newUser = { “name”: “赖小赖”, “email”: “example@gmail.com”};
$ db.users.insert(newUser);
// 继续插入
$ var anotherNewUser = { “name”: “小清”, “email”: “123456@gmail.com”};
$ db.users.insert(anotherNewUser);
var xiaoqing = {
“name”: “小清”,
“email”: “abcd@laispace.com”,
“password”: “myLatestPassword”
};
$ db.users.update({“name”: “小清”}, xiaoqing);
$ db.users.findOne({“name”: “小清”});
// 看看已有的数据
$ db.users.find();
$ db.users.find({“name”: “小清”});
// 删除 小清
$ db.users.remove({“name”: “小清”});
$ db.users.findOne({“name”: “小清”});
$ db.users.find();
// 删除全部
$ db.users.remove();
$ db.users.find()
$ console.log(“待补充!”);
记录一些Modules的简单用法,方便快速查阅。
[javascript]
// 解析DNS
var dns = require(‘dns’);
var href = ‘www.laispace.com’;
var type = ‘A’;
// href 待解析的域名字符串, type 表示记录类型的字符串(A-地址解析/CNAME-别名解析/MX-邮件域名解析/SRV-服务记录等);
dns.resolve(href, type, function (err, result) {
if (err) {
throw err;
}
console.log(‘DNS解析结果是:’, result);
})
[/javascript]
解析结果:
除resolve()方法外,还有lookup()、resolve4()、resolve6()。resolveMx() 等其他方法见:DNS模块官方文档
HTML5一些特性不断在变化,一年前的语法跟现在的已经大有不同,像用来布局的 flex 属性也有新旧版本的语法了。
处理兼容性真是个蛋疼的事情 。
这里放一些闲时做的DEMO吧(含CSS3),测试在chrome下,主要目的是了解基本用法让自己一目了然,在项目需要的时候再加上兼容方案吧:)
1.设置父容器为 display 属性为 ‘flex’
2.设置子容器的 width、flex 和 order 属性
直接使用 css3 中的属性 transform:
[javascript]
// 获取内嵌框架
var iframeWindow = document.getElementById(‘myFrame’).contentWindow;
// 向内嵌框架发送消息
iframeWindow.postMessage(‘你好 赖小赖’, ‘http://laispace.com‘);
[/javascript]
[javascript]
// message 事件是异步的
window.onmessage = function (event) {
// 确保消息源是已知域 event.origin
if (event.origin == ‘http://laispace.com‘) {
// 处理接收到的消息 event.data
console.log(event.data);
// 向消息源发送回执(event.source是消息源的window对象的代理)
event.source.postMessage(‘消息已收到’, ‘http://www.消息源.com‘);
}
};
[/javascript]
使用HTML5制作移动应用,寒假前确定了方案《HTML5移动开发方案探索》,是时候开始实施了!
这是第一次做HTML5移动应用的开发,Google了不少发现坑不少,中文文档也不多,只得自己好好摸索多查官方文档了。
处女PhoneGap应用的笔记先贴在这里,项目完工再好好做个总结吧:)
nodejs真是太酷了!
使用 http.get() 抓取页面,然后使用 jsdom 来解析页面(简单配置+jquery语法),简单代码如下:
var http = require('http');
// 使用 jsdom 来解析html https://www.npmjs.org/package/jsdom
var jsdom = require('jsdom');
// 抓取 V2EX 最新话题
var url = 'http://www.v2ex.com';
// 获取一个页面
http.get(url, function(res) {
var body = '';
console.log('状态码:', res.statusCode);
res.on('data', function(chunk) {
console.log('数据传输中...');
body += chunk;
});
res.on('end', function() {
console.log('数据传输完成:');
// 使用 jsdom 解析抓取到的html
jsdom.env(
body,
'http://code.jquery.com/jquery.js',
function(errors, window) {
var $ = window.$;
console.log('数据传输完成');
var len = $('.cell.item').length;
console.log('找到最新主题', len);
for (var i = 0; i & lt; len; i++) {
var title = $('.cell.item').eq(i).find('.item_title a').html();
var link = url + $('.cell.item').eq(i).find('.item_title a').attr('href');
console.log(title + '(' + link + ')');
}
}
);
});
}).on('error', function(e) {
console.log( & quot; 发生错误: & quot; + e.message);
});
今天学习了一个简单的CLI文件管理器的编写:
Hello, 这是小赖的第一个nodejs命令行程序!
2013是移动互联爆发的一年,2014也肯定也是移动互联网的天下!
笨鸟先飞,小赖打算进入移动开发,先从HTML5移动应用开始,再连带学学IOS,希望2014会有更大的收获。
查阅资料后就开始!不过要做好被移动开发各种坑坑死的打算先 - -
前几天接触了WebSocket,感觉到了socket通信的强大,见《HTML5-WebSocket API 学习》。
小赖决定自己动手写一个基于nodejs+express+socket.io的聊天室应用,用来做node入门的小项目吧。
项目地址戳这里。
今天实现的部分是:
客户端与服务器通信
多个客户端同时通信
保存聊天记录和在线用户
安装方法:
NODE核心自带的STDIO模块,就是类似浏览器端的console.*()系列方法,可像浏览器端调试代码一样,简单对代码进行调试:
console.log() 在控制台输出信息,可用来记录一个函数是否执行、函数执行时某些变量的值
console.error() 输出错误信息,常配合try catch语句使用
console.time(‘mytime’)和console.timeEnd(‘mytime’)会输出代码块执行的时间
debugger; 遇到这句断点时,代码都会中止执行,按play可继续代码执行
$ npm install -g node-inspector
使用node-inspector 对nodejs代码进行调试,需要环境:webkit内核浏览器
[javascript]
// file t6.js
var foo = function(){
var a = 3, b = 5;
var bar = function(){
var b = 7, c = 11;
a += b + c;
}
bar();
}
foo();
[/javascript]