fengdayin
fengdayin
关注数: 20
粉丝数: 21
发帖数: 890
关注贴吧数: 5
sikele2236大神语录, [sikele2236队列说],我承认我醉了 sikele2236: 你自己写写看不就知道了,简单的队列照样并发错误,内部还得加锁做成多线程能同步的队列才能应付并发,我有教你一招,菜逼。2015-3-1 13:56 sikele2236: 不同步队列个毛啊,你没看出队列就是同步的一种么?菜还要秀自己有多菜,诶 2015-3-1 13:50 sikele2236: 并发用队列同步,队列内就需要锁机制,你菜还秀自己多菜,队列,栈,字典,都有多线程版本,自己没用过还说别人不会,你到底有多菜。 2015-3-1 13:54 sikele2236: 比如通过手段复制了银行卡异地同时取,你以为能取出两份而只计算一份么?说了你傻还不信,懒得和你多说,自己去思考,并发异步不难,同步才是头疼的。2015-3-1 13:35
请大家不要再学java c#了 学这两样东西, 容易陷入高手程序员编写的框架中, 让你无法接近底层, 理解编程的本质. 有很多这样的程序员, 其思想就被围城了. 如果你想学编程的应用, 请学习C (忠告:离C++远一点) 如果你想学编程的艺术, 请学习Lisp 如果你想占一些Lisp的艺术气息, 并且通过编程赚钱, 请学习Javascript
我想给一些菜鸟看看nodejs的代码应该怎么写 var cookie = require('cookie'); module.exports = function (req, res, conf, views, db) { ..var body = req.body, ....id = req.ids[0], ....usid = cookie.parse(req.headers.cookie).usid; ..function redirect () { ....res.writeHead(302, { 'location' : '/accounts' }); ....res.end(); ..} ..function joinpage () { ....res.writeHead(200, { 'Content-Type' : 'text/html;charset=utf-8' }); ....res.write(views.ACCOUNTS_JOIN); ....res.write(views.unit({ ......id : 'accounts_menu', ......name : 'accounts_menu', ........options : { ..........class_id : id ........} ....})); ....res.write(views.unit({ ......id : 'accounts_join', ......name : 'accounts_join', ......options : { ........action : '/accounts/' + id + '/join', ........num : '0' ......} ....})); ....res.end(views.FOOTER); ..} ..db.session(usid, function (state) { ....// 已经建立会话 ....if (state) { ......joinpage(); ......return; ....} ....// 没有建立会话 ....redirect(); ..}); }; ////////////////////////////////////////////////////////////////////////////////////////////////////////// 这段代码,是nodejs其中一个路由处理函数. 使用到了views视图模型,db数据库模型,以及conf全局配置文件. 并且使用了cookie模块来解析会话ID. views视图模型 : 生产HTML界面 [可以随时切换到PC或者移动HTML,接口一致] db数据模型 : 生产数据库数据 conf全局配置文件 :你所需要的全局环境内容 代码的功能: 检测请求 ....是否建立会话? ........是,跳转到"/"路由 ........否,为用户显示登录界面 其中views负责生产视图界面, 在views模型中缓存了大量的常量,类似ACCOUNTS_JOIN,是页面布局。 对于其中的动态内容,采用facebook的bigpipe技术。 views.unit(/*id, name, css, js, content*/)输出script片段,分流到浏览器渲染。 整个服务器端在启动时渲染完毕所有的页面布局体,并缓存到views模型中,动态内容由bigpipe发送到前端渲染。
用闭包来提升几何级的性能 假设你写了一个tooltip,也就是传说中:鼠标放在元素上,弹出提示。 有一个指示器来保存弹出的次数,来做一些特别的用处。 如果页面有1000个元素调用了tooltip,那么该如何写。 (2楼将放上低效的写法作为比较)(为了节省代码,alert()表示弹出tooltip (PS:也许有同学要说,只要写一个命名空间,在这个空间把所有的属性方法全塞到 一起就全搞定了。 但事实是当一个页面有上千行代码的时候,你把这个代码交给别人, 别人完全不知道你其中的add函数是值得什么意思,它涉及到哪些上下文和属性方法。 模块化代码是必需要的:当你需要修改一个方法时,你只需要关注他所在的环境。) 高效版本: /*===================================================================*/ var Tooltip = (function () { // tooltip类 var toolcount = 0; // 计数器 return { addTooltip: function () { // 闭包存储toolcount toolcount++; alert('显示' + toolcount + '次tooltip'); } }; })(); ////////////////////////////////////////// var Element = function () { // 页面的元素类 Tooltip.addTooltip(); }; //////////////////////// var Factory = { // 工厂运行 run: function () { for (var i = 0; i < 1000; i++) { new Element(); } } }; //////////////////////////////////////////// // 运行 Factory.run(); /*===================================================================*/ PS: 通过toolcount的值动态存储到Tooltip的作用域中。 在1000个Element实例对象的每次调用,都把toolcount进行了计算递加。 通过闭包,避免了构造器方式保存1000个Element的指示。 这只是个实例, 针对构造器保存数据的简化方法并不止如此简单。
为什么什么时候用 call() , applay() 函数 一直有人问我 call() , applay() 函数的用法, 感觉是多此一举,基本不用。 那么现在用一个实践说明一下。 有许多时候是只能用call() , applay() 才能有效。 /** * 目标: * (1) 建立一个Poe对象,指代页面上所有的同类标签元素,比如所有的div元素。 * (2) 使用P的each()函数遍历,输出每个div元素的标签名+索引值。 * var p = new Poe('div'); * p.each(function(){ ******alert(this.tagName + ' ' + index); **});********输出DIV0 DIV1 DIV2 ...********** /*===================================================================*/ // 创建P()构造函数 var Poe = function (selector) { /**/this.create(selector); // 构建 }; // 重写P的原型对象 Poe.prototype = { ////初始构建函数 /**/create: function (selector) { /******/this.selector = selector; /******/this.elements = document.getElementsByTagName(selector); /******/this.length = this.elements.length; /**/}, ////遍历函数 /**/each: function (callback) { // 回调函数callback /******/var i = 0, len = this.elements.length; /******/for (; i < len; i++) { /******/ callback.call(this.elements[i], i); // call()函数 /******/} /**/} }; window.onload = function () { /**/var p = new Poe('div'); /**/p.each(function (index) { ////输出每个div的标签名字'DIV'和索引值 /******/alert(this.tagName + ' ' + index); /**/}); }; ////////输出DIV0 DIV1 DIV2 ... //在this.elements[i]中,并没有callback()这个方法, //也就是无法 this.elements[i].callback(); //于是采用借用的方式 callback.call(this.elements[i], i); /*===================================================================*/
HTML 5 简明阐释 其实HTML 5 几个字很忽悠人, 好像学的是HTML5这门什么语言? 协议? 其实HTML 5只是一个HTML规范。 HTML 5 其华丽的实现是通过javascript语言, 其静态容器由html标签来构成(即称为DOM元素), 其比以前的HTML最强大的功能:地理定位API, VIDEO API, CANVAS画布 API, 客户端存储API, 多人通信API等, 接近桌面系统的API了,所以Mozillia利用HTML和javascript的API作出FIREFOX OS不足为奇,其华丽比桌面更为强大,但是与硬件打交道提取设备数据还是通过linux内核。 ---------------------------------------------------------------------------- 综上所述,想精通HTML5, 一本HTML5编写的教程(或者html+html5标签小册子) 一本javascript语言教程, 配一本jquery教程能让你爱上javascript 一本canvas教程,让你进入浏览器图形编程的空间,做2d游戏,动态图形就是如此简单 一本css3教程,让你的页面控件更加漂亮
和谐 这个词让发吗 和谐测试一下
和谐 这个词让发吗 和谐测试一下
和言皆 这个词让发吗 和言皆测试一下
其实WOW画面改成这样才能让这个吧的人满意 SOSO
1
下一页