PHP开发工程师@温州。博客关于:技术、生活、读书、互联网。

iOS中javascript与swift进行交互

在移动app混合开发中,必不可少的需要Javascript与原生应用进行交互。

下面以iOS平台为例,介绍在WebView中javascript与swift的交互。


1.swift调用javascript

swift调用javascript很简单,使用webview对象的一个方法即可实现:

webview.stringByEvaluatingJavaScriptFromString(“alert(‘啊~swift调用了我。’)”);

上面的代码用swift执行网页中的一个弹窗,在模拟器打开如下。



2. javascript调用swift

javascript不能...

微信内置浏览器的Js API

最近做了几个微信微网站的小项目,这里整理下微信内置浏览器的几个Js API。


//当页面加载完毕后执行

if (document.addEventListener) {

                  document.addEventListener('WeixinJSBridgeReady',function(){});

} else if (document.attachEvent) ...

Angular.js中使用$watch监听模型变化

$watch简单使用

$watch是一个scope函数,用于监听模型变化,当你的模型部分发生变化时它会通知你。


$watch(watchExpression, listener, objectEquality);

每个参数的说明如下:

  1. watchExpression:监听的对象,它可以是一个angular表达式如'name',或函数如function(){return $scope.name}。

  2. listener:当watchExpression变化时会被调用的函数或者表达式,它接收3个参数:newValue(新值), oldValue(旧值), scope(作用域的引用

编写自己的NPM包

1.编写模块

一个最简单的NPM包由主模块index.js和包描述文件package.json组成。

让我们编写一个生成指定长度随机字符串的NPM模块:

//index.js
module.exports = function(len){
    var rdmString = "";
    for (; rdmString.length < len; rdmString += Math.random().toString(36).substr(2));
    return...

七天学会Node.js

七天学会NodeJS是阿里巴巴国际站前端技术部编写的开源文档,用于学习 Node.js。

网址 :http://nqdeng.github.io/7-days-nodejs/

github : https://github.com/nqdeng/7-days-nodejs

小试HTML5 Notification

HTML5 Notification ,即桌面通知。

目前浏览器依然是一个严格的沙盒工作模式,这种模式把浏览器和桌面的通信隔离开。Notification可以跨越沙盒能够让浏览器即使是最小化状态也能将消息通知给用户。


桌面提醒API

window.webkitNotifications

该API有3个方法:

  1. requestPermission 请求桌面通知

  2. checkPermission    检查桌面通知许可(PERMISSION_ALLOWED = 0, PERMISSION_NOT_ALLOWED = 1, PERMISSION_DENIED...

var happy = new year(2014);

2013年即将过去

写完这篇2013最后的工作总结就该幸福快乐的过年了╮(╯▽╰)╭

回顾2013,工作方面貌似在玩着各种各样的Js开发

使用node.js开发服务端应用

前端的MVVM框架Angular.js

HTML5游戏开发kinetic.js

使用Js开发基于phonegap的手机应用

node-webkit桌面应用

数据可视化D3.js、echarts

前端的包管理bower

自动化构建grunt

实时通讯socket.io

3D技术three.js

UI框架bootstrap等

。。。。

什么,Jquery?源码都基本看完了

当然除了JavaScript...

Angular.js整合socket.io

前言

作为下一代的 Web 标准,HTML5 拥有许多引人注目的新特性,如 Canvas、本地存储、多媒体编程接口、WebSocket 等等。
这其中WebSocket使得浏览器对 Socket 的支持成为可能,从而在浏览器和服务器之间提供了一个基于 TCP 连接的双向通道。Web 开发人员可以非常方便地使用 WebSocket构建实时 web 应用,开发人员的手中从此又多了一柄神兵利器。


socket.IO
Socket.IO 是一个功能非常强大的框架,能够帮助你构建基于 WebSocket的跨浏览器的实时应用。支持主流浏览器,多种平台,多种传输模式,还可以集合 Exppress...

AngularJS中的表单验证机制

客户端表单验证是AngularJS里面最酷的功能之一。 AngularJS表单验证可以让你从一开始就写出一个具有交互性和可响应的现代化HTML5表单。


angularJs实现了大多数的HTML5表单域(input,text,number,url,email,radio,checkbox),并添加了自己的一些验证指令(required,pattern ,minlength,maxlength,min,max)。


常见的有:

必填
<input type="text" ng-model="name" required />...


什么是 Event Loop?

[转载自阮一峰的网络日志]


Event Loop 是一个很重要的概念,指的是计算机系统的一种运行机制。

JavaScript语言就采用这种机制,来解决单线程运行带来的一些问题。


本文参考C. Aaron Cois的《Understanding The Node.js Event Loop》,解释什么是Event Loop,以及它与JavaScript语言的单线程模型有何关系。

想要理解Event Loop,就要从程序的运行模式讲起。运行以后的程序叫做"进程"(process),一般情况下,一个进程一次只能执行一个任务。


如果有很多任务需要执行,不外乎三种解...

[require.js工具]使用r.js优化require.js项目

RequireJS提供一个基于node.js的命令行工具r.js用来压缩多个js文件。

 它的主要作用是将多个模块文件压缩合并成一个脚本文件,以减少网页的HTTP请求数。


如何使用?

官方文档:http://www.requirejs.org/docs/optimization.html


这里具体如何使用就不多说了,无非就是用npm下载后几个命令而已。

由于目前端项目大多数都是使用grunt构建的,且r.js也支持grunt。

这里就讲下如何使用grunt配合r.js实现自动化优化require.js项目。


grunt-contrib-requirejs...

[require.js插件] text.js异步加载文本资源

text.js是require.js的一个插件,用于异步加载文本资源,如txt、css、html、xml、svg等。


安装text.js

bower install requirejs-text


text.js使用

在require.js主模块main.js配置text.js路径

require.config({
        paths: {
            text : ...

使用require.js进行JavaScript模块化编程

随着互联网的飞速发展,Javascript开发越来越复杂。Javascript的模块化开发显的越来越重要。

目前,主要的Javascript模块规范共有两种:CommonJS和AMD。


CommonJS

CommonJS主要指服务器端的javascript模块的规范。它的终极目标是提供一个类似Python,Ruby和Java标准库。这样的话,开发者可以使用CommonJS API编写应用程序,然后这些应用可以运行在不同的JavaScript解释器和不同的主机环境中。CommonJS的实现有Node.js、CouchDB等。


AMD规范

AMD是"Asynchronous...

强大的Web包管理工具 - bower

前言 

每当我们开始一个新的web前端项目,我们做个第一件事都是去下载相应的js类库文件。

如我们项目要用到Jquery,我们就要去Jquery的官网下载Jquery库。

接着若我们的前端UI要用到Bootstrap,我们还要去Bootstrap的官网下载Bootstrap,而最新的Bootstrap3需要Jquery1.9以上的支持,我们不得不又要检查Jquery的版本是否合适,不合适的话要重新下载。

甚至复杂一点的angular.js的项目我们可能要依赖angular的一些模块:angular-route、angular-animate等。
像angular-route.js...

node-webkit:用JS开发跨平台的桌面应用

node-webkit是一个基于chromium和node.js实现的应用程序运行时环境,开发人员可运行通过HTML(5)、CSS(3)、Javascript来编写的本地应用程序。

项目地址: https://github.com/rogerwang/node-webkit

文档: https://github.com/rogerwang/node-webkit/wiki

开源协议:MIT


特点:

使用web技术开发,html5、css3、js、webGL。

在网页中使用node.js。

跨平台运行,兼容linux、mac、windows。


安装node...

使用gruntJs构建javascript项目

gruntJs,一个专为JavaScript提供的自动化项目构建工具。. 如果你需要重复的执行像压缩, 编译, 单元测试, 代码检查以及打包发布的任务. 那么你可以使用Grunt来处理这些任务, 你所需要做的只是配置好Grunt, 这样能很大程度的简化你的工作.

官网 : http://gruntjs.com/

github : https://github.com/gruntjs/grunt


安装grunt

npm install -g grunt-cli

npm install...

angular.js使用心得。

从今年年中开始接触angular.js,也用它做了几个项目:

[angular.js + .net] 和别人公司合作的联盟商家app  

[angular.js + php] 帮客户做的ecshop商城webapp

[angular.js + node.js] 自己公司做微信喜帖应用     

这里就简单介绍下这个来自互联网巨人Google的angular.js及使用心得吧。


首先当然是介绍下angular.js

AngularJS 是Google...

© 袁克强的博客 | Powered by LOFTER