ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:579.81KB ,
资源ID:8356598      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8356598.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Nitrogen自学笔记.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Nitrogen自学笔记.docx

1、Nitrogen自学笔记Nitrogen 自学笔记 I : 简介2009-12-14 下午 10:37Nitrogen 是什么? 一个 Erlang 的 Web Framework, 可以建筑在 Inets / Mochiweb / Yaws 上的。 有什么特别? 可以很简单的实现 Real Time 的网站,Server Push / Comet 、 分布式程序 、高并发程序。 简单来说,我们可以很“容易”的实现,高并发的 Comet 应用。比如一个 一个 Mochiweb 的应用 Wiki: 官网:Nitrogen 自学笔记 II : nterview with Rusty Klophau

2、s on the Nitrogen Erlang Web Framework2009-12-14 下午 10:45Hi Davidw, Thanks for your interest and questions. For now, Nitrogen is primarily aiming to bring Erlang up to par with other languages for creating dynamic, Ajax-ified Web 2.0 applications.What does it really do that takes advantage of Erlang

3、? The big advantage is that, with Nitrogen, you can develop your entire Web 2.0 application in Erlang. Before Nitrogen, most people did the front end in Rails and the back end in Erlang, and used a bridge, such as Apache Thrift, to get them talking. Once your web app is in Erlang, you can: * Run on

4、Mochiweb or Yaws, both extremely performant http servers.* Distribute your web server across multiple nodes without worrying about sticky sessions. * Reap all of the other Erlang goodness, such as hot code swapping, built in application monitoring and restarting, an extremely stable environment, etc

5、. (All of the stuff that made Amazon use Erlang for SimpleDB and Facebook use Erlang for Facebook Chat.)What about the DB layer? Mnesia, Erlangs built in database, actually does the job quite well. Languages tend to add a DB layer to ease the pain of jumping into and out of SQL, and were so used to

6、this that we expect to have to do the same in any language. But in this case, Mnesia thinks in Erlang syntax, so there is really no need to wrap it in anything. Plus, Mnesia works really well for documents with changing schemas, which is very Web 2.0. If youd rather avoid Mnesia and use SQL, then Er

7、lyDB is your best option.Nitrogen 自学笔记 II : 如何传递 Data 给 Template2009-12-15 下午 10:57- File : web_blog.erl -module (web_blog).-include (wf.inc). / Include Nitrogen Elements, -compile(export_all).main() - #template file=./wwwroot/one2column.html . / Render HTML by passing Datatitle() - Nitrogen Referen

8、ce Eric. / For HTML template; can be called like page:title() in templateheadline() - Nitrogen Reference Overview. body() - Elements Eric ! Elements are the building blocks of a Nitrogen page. They let you specifya page template, divs, spans, textboxes, and buttons using a simple syntax based onErla

9、ng records.ActionsActions let you make a page dynamic. Use actions to wire up click or mouseoverevents, apply JQuery effects, show or hide elements, and display alerts.ValidatorsValidators help you check that the data a user entered is valid. Check forrequired fields, integer values, emails, and oth

10、ers, or add your owncustom validators.Nitrogen 自学笔记 III : 定义 Function2009-12-15 下午 11:09Nitrogen 根本还是 Erlang, 所以定义一个 Function / Module 必然要遵循基本的语法,这里不多说了。但是,Nitrogen 毕竟是一个 Framework, 他有自己的语法、自己的封装。为了更便于理解和学习,我们在定义一个 Module 的时候,需要遵循一个简单的原则 :如我们将要实现一个 URL 例如:那么我们的 Module 的目录结构及命名应为:-blog-view-blog_view

11、_all.erlNitrogen 自学笔记 4 : Template 中调用 Module2009-12-16 下午 09:18普通情况,我们在 Template 当中,都是应用 page:body() 的方法借助 page 这个 Master Module 来传递参数,但是,当有需要调用另外的 Module 来进行处理,或者可以复用的模块,则可以采用: another_module:render() 的方法,书写一个 another_module.erl 来进一步处理 。如可以在这个新的 Module 下面定义:#buttonid=btn, text=“Do Domthing”, postb

12、ack=do_somethingNitrogen 自学笔记 5 : Nitrogen 链接 CouchDB2009-12-23 下午 11:06Nitrogen 没有自己的数据库方法,我们可以引用第三方的 API 链接 CouchDB,我采用 erlang-couchDB,从这里可以找到转帖的原文首先,启动 Mochiweb + Nitrogen- start.sh -#!/bin/shexport NITROGEN_SRC=.export COUCHDB_SRC=./erlang_couchdbexport MOCHIWEB_SRC=./mochiwebcd dirname $0if -d

13、$MOCHIWEB_SRC ; thenecho Using Mochiweb in directory $MOCHIWEB_SRC.elseechoecho Update $MOCHIWEB_SRC to point to your Mochiweb directory.echo Exiting.echo exit 1fiecho Creating link to Nitrogen support files.rm -rf wwwroot/nitrogenln -s ./$NITROGEN_SRC/www wwwroot/nitrogenecho Starting Nitrogen on M

14、ochiweb.exec erl -name nitrogen127.0.0.1 -pa $PWD/apps $PWD/ebin $PWD/include -pa $COUCHDB_SRC/ebin $COUCHDB_SRC/include -pa $NITROGEN_SRC/ebin $NITROGEN_SRC/include -pa $MOCHIWEB_SRC/ebin $MOCHIWEB_SRC/include -s make all -s reloader -eval application:start(nitrofront)然后,很简单的应用这个 API- web_create.er

15、l -module (web_create).-include_lib (./include/wf.inc).-compile(export_all).main() - #template file=./wwwroot/onecolumn.html, bindings=Group, index,Item, create.title() - create a new mapping.headline() - Map a new path to a destination.body() - #link class=tiny, text=back to list, url=/web/index,#p

16、,#label text=Path: ,#textbox id=path, text=/new/path ,#label text= Destination: ,#textbox id=dest, text=http:/new.destinati.on/ ,#p,#button text=save, postback=button_pressed .event(button_pressed) - Path=wf:q(path),Dest=wf:q(dest),links:create_mapping(Path, Dest),wf:flash(wf:f(record saved: s - s,P

17、ath,Dest);event(_) - ok. - links.erl -module(links).-compile(export_all).get_all() -json,struct, Props = erlang_couchdb:invoke_view(127.0.0.1, 5984, umleitung, redir, match, key, /),try proplists:get_value(, Props) ofstruct, Row | _ -proplists:get_value(, Row),proplists:get_value(, Row);_ - error, u

18、nknowncatch_:_ - error, unknownend.create_mapping(Path, Dest) -Doc = ,list_to_binary(Path),list_to_binary(Dest),erlang_couchdb:create_document(127.0.0.1, 5984, umleitung, Doc).Nitrogen 自学笔记 6 : 安装 Nitrogen on Mochiweb2009-12-26 下午 01:30在官网上有一个教程,但是我发现还是有些不太清楚,不太适合我这种小白。以下是我的配置过程1. 下载 Mochiweb、Nitrog

19、en,这个就不用多嘴了2. 我这样部署我的目录结构:g 是我的源码,所有 Nitrogen / Mochiweb / erlang-CouchDB / . 都在放nitrogen 下面3. 使用 Nitrogen 自带的命令行来创立一个 project4. 这样在 g 文件夹下面就会产生默认的文件5. 下面我们需要编辑一下 start.sh6. 还有一步,这个是我感觉不太方便的地方,也许我还没有搞明白正确的地方来编译。一下是我的小技巧7. 使用文本编辑器,编辑g.app,如果有大牛了解如何编译生成这个配置文件,请赐教 8. 最后我们需要编辑一下我们的 web_index.erl 文件,这个是

20、nitrogen 默认启动后会查找的文件,简单来说,就是修改正确的 Lib 目录9. OK 了,运行 ./start.sh 时候可以看到如下的页面剩下的就是我们自己去创造我们自己的代码了 :-DNitrogen 自学笔记 7 : Nitrogen with PostgreSQL2010-01-10 下午 08:01要实现 Erlang 和 MySQL 或者 PostgreSQL 并没有想象的容易。对于,MySQL 来说找了2个方法,1. eralng-mysql, 始终无法正确链接数据库。2. mysql-odbc mysql-odbc 不支持 Mac-10.6, 所以放弃。 然后回到 Pos

21、tgreSQL 上来吧。1. 获得一个Erlang-PostgreSQL 的copy hg clone 2. 保证在我们开始 nitrogen 的时候,加载 erlang-postgre3. 我们自己的 DB layer4. 这样就可以了,其他的我们就可以慢慢书写了。Nitrogen 自学笔记 8 : Erlang 和 Key-Value 数据库2010-01-10 下午 08:13最近一直对 Key-Value 类型的数据库一直很感兴趣。 感觉更能体现 Erlang 的分布式、高并发、高可用的特性。但是,对于一个类似我这样都初学者,直接用这样的“新型”数据库,还真是很。我就写写我的自我感觉吧

22、。1. 首先进入眼帘的数据库是 CouchDB , 名气似乎最大,但是看了很多评论,比如 Last.fm 的 CTO 的这篇文章,还是很有启迪意义的2. 进而我又看了scalaris,很有意思,很奇特的设计,但是似乎不存在物理文件的感觉很不安全。3. 又看了国人写的这个4. 。总之看了很多,试用了几个,都是很特别的。但是,对于初学者来说,真得用起来非一朝一夕可以体会真谛的,我的意思是如果没有几个机器的互相策应,根本无法体会其中最有意思的地方。也许,某一天有机会了,真得可以去真正部署一下。Nitrogen 自学笔记 9 : Nitrogen 收集教程-ing2010-01-11 上午 09:35比较详细的教程Nitrogen 自学笔记 10 : Comet 应用2010-01-11 下午 11:19Comet 就不多说了,这里有一篇很好的文章介绍。应用 Nitrogen 来实现 Comet 非常简单。wf:comet( fun() - YOUR_FUNCTION() end)我认为 Nitrogen 就是应用了 基于 AJAX 的长轮询(long-polling)的方式,由 jQuery 响应服务器发过来的更新,通过 wf:update 来进行页面的更新,当更新结束后在发送请求给服务器,等待下次服务器给它更新。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1