阅读更多


Aptana 已经发布了 ActiveRecord.js 首个beta版本,Aptana的开发者Ryan Johnson介绍了详细情况:

ActiveRecord.js是一个开源对象关系映射ORM工具,能够支持多种JavaScript环境,包括:

    * Google Gears (客户端持久化)
    * In Memory (如果没有 SQL server能在客户端使用)
    * Adobe AIR (客户端持久化)
    * SQLite 和 MySQL (通过 Aptana Jaxer, 开源 Ajax server)
    * 其他环境 (比如 HTML5)

ActiveRecord.js抽象了底层的SQL命令,所以JavaScript开发者能够使用一个统一的API来排序,查询,搜索对象,数据使用 Ruby on Rails社区熟悉的 ActiveRecord pattern

下面是使用ActiveRecord.js 框架一些例子,注意它们对Ruby on Rails的ActiveRecord pattern的修改部分。

var User = ActiveRecord.define('users',{

username: '',

email: ''

});

User.hasMany('articles');

var ryan = User.create({
username: 'ryan',
email: 'rjohnson@aptana.com'
});

var Article = ActiveRecord.define('articles',{
name: '',
body: '',
user_id: 0
});

Article.belongsTo('user');

var a = Article.create({
name: 'Announcing ActiveRecord.js',
user_id: ryan.id
});

a.set('name','Announcing ActiveRecord.js!!!');
a.save();
a.getUser() == ryan;
ryan.getArticleList()[0] == a; 
来自: ajaxian.com
28
0
评论 共 9 条 请登录后发表评论
9 楼 yuan 2009-04-28 14:45
有没人可以说说客户端持久化是做什么用的?
搜索了一把,网上资料似乎不多。
8 楼 zongxing 2009-01-30 12:01
新东西更应用学习。
7 楼 java0310 2009-01-28 22:30
太强大了。。我太渺小了。。。学习。。。
6 楼 wxlmcqueen 2009-01-21 15:44
新东西总不能见了都用,关键是合适不合适
5 楼 javaeyebird 2009-01-17 16:20
articles多好,getArticleList真累赘,浪费能源。。。哈哈
4 楼 coolcry 2009-01-17 00:04
不错,虚心学习。
3 楼 scriptlover 2009-01-16 15:18
不错的东西
2 楼 bellstar 2009-01-16 14:42
Ruby ActiveRecord应该自己支持浏览器端的模型和服务器端一致
1 楼 wjd2002 2009-01-16 13:00
越来越向开发平台靠拢了,不错

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • Win32下HTTP请求

    这个是Win32工程下,使用WindowsAPI,不依赖MFC库,具有很高的移植性;使用UNICODE编码,解决中文乱码问题。在头文件中有详细使用说明。

  • 在WINDOWS里获得IP地址的办法

    最近在看网络编程(主要是TCP/IP通信的)的内容,还研究了下WMI。把获得IP地址的方法总结如下。1.      使用ipconfig程序。在命令行下使用命令ipconfig可以得到本机的每个有效网罗接口的IP网罗信息。如果在代码中,可以使用Process.Start()方法来调用ipconfig,然后使用正则表达式来解析结果──当然这样做太繁了,不实用。但我曾经使用类似的方法在代码中获得MAC

  • InternetOpen InternetOpenUrl InternetReadFile 和 InternetCloseHandle

    InternetOpen 函数功能 初始化应用程序对WinINet函数的使用 函数声明 INTERNETAPI_(HINTERNET) InternetOpenA( _In_opt_ LPCSTR lpszAgent, _In_ DWORD dwAccessType, _In_opt_ LPCSTR lpszProxy, _In_opt_ LPCSTR lpszProxyBypass, _In_ DWORD dwFlags ); 第一个参数 指向以null终

  • WinInet使用详解

    WinInet是windows平台对socket进行一层封装,用来直接处理http/ftp/Gopher协议的一套windows API。我第一次接触这个是在一个客户那里,当时因为客户都需要使用http代理才能浏览网页,所以折腾了一天,才基本掌握。而时隔没多久又忘记的差不多了,这个流程就像正则表达式一样,常学常忘,常忘常学。而网络上流传的WinInet代码实例,不是编译不通过,就是粗制滥造。因此现

  • InternetOpenA

    [ilink32 Error] Error: Unresolved external 'InternetOpenA' referenced from  ..\WIN32\DEBUG\NATIVEXML.OBJ wininet.lib  添加lib文件到工程或者 工程cpp或主窗体cpp的开始加上一句话就OK啦! #pragma link "wininet.lib"  [ilink...

  • C++ 一些http操作函数

    <br /><br />本文转自:http://www.cppblog.com/kyelin/archive/2007/05/08/23628.html<br /> <br />//==========> 初始化回话<br />HINTERNET hSession=::InternetOpen("Http",<br />PRE_CONFIG_INTERNET_ACCESS,<br />"",<br />INTERNET_INVALID_PORT_NUMBER,<br />0);<br /><br />if(

  • 解决OpenUrl函数总是得到缓存数据的问题

    CInternetSession::OpenURL的问题. CStdioFile* OpenURL( LPCTSTR pstrURL, //文件URL地址  DWORD dwContext = 1, //上下文ID  DWORD dwFlags = INTERNET_FLAG_TRANSFER_ASCII, //标记  LPCTSTR pstrHeaders = NULL, //发送到服务

  • Win32 API文件读写操作

    1、文件的创建和打开   HANDLE CreateFile(     LPCTSTR lpFileName,     DWORD dwDesiredAccess,     DWORD dwShareMode,     LPSECURITY_ATTRIBUTES lpSecurityAttributes,     DWORD dwCreationDispositi...

  • 恶意代码分析实战——静态分析基础技术

    从时代发展的角度看,网络安全的知识是学不完的,而且以后要学的会更多,同学们要摆正心态,既然选择入门网络安全,就不能仅仅只是入门程度而已,能力越强机会才越多。因为入门学习阶段知识点比较杂,所以我讲得比较笼统,大家如果有不懂的地方可以找我咨询,我保证知无不言言无不尽,需要相关资料也可以找我要,我的网盘里一大堆资料都在吃灰呢。干货主要有:①1000+CTF历届题库(主流和经典的应该都有了)②CTF技术文档(最全中文版)③项目源码(四五十个有趣且经典的练手项目及源码)

  • 获取IE默认代理配置

    BOOL GetWinetProxy(LPSTR lpszProxy, UINT nProxyLen) { unsigned long        nSize = 4096; char                 szBuf[4096] = { 0 }; INTERNET_PROXY_INFO* pProxyInfo = (INTERNET_PROXY_INFO*)szBuf; i

  • Internet API 使用代理

    1.  相关函数:  HINTERNET  WINAPI  InternetOpen(    LPCTSTR  lpszAgent,      DWORD  dwAccessType,      LPCTSTR  lpszProxy,      LPCTSTR  lpszProxyBypass,      DWORD  dwFlags);     BOOL  WINAPI  InternetSe

  • 设置InternetConnect的httpRequest连接数

    这几天在写http断点下传的实现,遇到一个问题:

  • 易语言HTTPS访问网页模块源码

    调用的DLL命令: .DLL命令 InternetOpenA, 整数型, "WinINet.dll" .参数 lpszAgent, 文本型 .参数 dwAccessType, 整数型 .参数 lpszProxyName, 文本型 .参数 lpszProxyBypass, 文本型 .参数 dwFlags, 整数型 .DLL命令 InternetCloseHandle, 逻辑型, "WinINet.dll" .参数 hInternet, 整数型 .DLL命令 InternetConnectA, 整数型, "WinINet.dll" .参数 hInternet, 整数型 .参数 lpszServerName, 文本型 .参数 nServerPort, 整数型 .参数 lpszUserName, 文本型 .参数 lpszPassword, 文本型 .参数 dwService, 整数型 .参数 dwFlags, 整数型 .参数 dwContext, 整数型 .DLL命令 HttpOpenRequestA, 整数型, "WinINet.dll" .参数 hConnect, 整数型 .参数 lpszVerb, 文本型 .参数 lpszObjectName, 文本型 .参数 lpszVersion, 文本型 .参数 lpszReferer, 文本型 .参数 lplpszAcceptTypes, 文本型 .参数 dwFlags, 整数型 .参数 dwContext, 整数型 .DLL命令 HttpSendRequestA, 逻辑型, "WinINet.dll" .参数 hRequest, 整数型 .参数 lpszHeaders, 文本型 .参数 dwHeadersLength, 整数型 .参数 lpOptional, 文本型 .参数 dwOptionalLength, 整数型 .DLL命令 InternetReadFile, 逻辑型, "WinINet.dll" .参数 hFile, 整数型 .参数 lpBuffer, 字节集, 传址 .参数 dwNumberOfBytesToRead, 整数型 .参数 lpdwNumberOfBytesRead, 整数型, 传址 .DLL命令 HttpQueryInfoA, 逻辑型, "WinINet.dll" .参数 hRequest, 整数型 .参数 dwInfoLevel, 整数型 .参数 lpvBuffer, 文本型, 传址 .参数 lpdwBufferLength, 整数型, 传址 .参数 lpdwIndex, 整数型 .DLL命令 InternetSetCookieA, 逻辑型, "WinINet.dll" .参数 lpszUrl, 文本型 .参数 lpszCookieName, 文本型 .参数 lpszCookieData, 文本型 .DLL命令 CreateThread, 整数型 .参数 lpThreadAttributes, 整数型 .参数 dwStackSize, 整数型 .参数 lpStartAddress, 子程序指针 .参数 lpParameter, 整数型 .参数 dwCreationFlags, 整数型 .参数 lpThreadId, 整数型, 传址 .DLL命令 CloseHandle, 逻辑型 .参数 hObject, 整数型 .DLL命令 TerminateThread, 逻辑型 .参数 hThread, 整数型 .参数 dwExitCode, 整数型 .DLL命令 MsgWaitForMultipleObjects, 整数型 .参数 nCount, 整数型 .参数 pHandles, 整数型, 传址 .参数 bWaitAll, 逻辑型 .参数 dwMilliseconds, 整数型 .参数 dwWakeMask, 整数型 .DLL命令 HttpAddRequestHeaders, , "wininet.dll", "HttpAddRequestHeadersA" .参数 hRequest, 整数型 .参数 lpszHeaders, 文本型, 传址 .参数 dwHeadersLength, 整数型 .参数 dwModifiers, 整数型

  • internetopen socks 之间关系

    我找到答案了, 来此跟大家分享一下吧: 1. 相关函数: HINTERNET WINAPI InternetOpen( LPCTSTR lpszAgent,  DWORD dwAccessType,  LPCTSTR lpszProxy,  LPCTSTR lpszProxyBypass,  DWORD dwFlags); BOOL WINAPI InternetSetOptio

  • 启用网络函数

    在使用WinINet函数之前,程序应该尝试通过使用InternetAttemptConnect函数建立网络连接。这个函数调用拨号上网对话框去创建一个网络连接或者检查一个网络连接是否存在。如果这个函数失败,程序可以在离线模式中操作在之前的网络连接中已经保存的信息。使用InternetCheckConnection函数检查网络连接。它尝试去PING传递给它的URL所指定的服务器。如果FLAG_ICC_FORCE_CONNECTION 标志已置及URL为空,它会检查服务器数据库入口最近的服务器。如果有一个存在,它

Global site tag (gtag.js) - Google Analytics