论坛首页 编程语言技术论坛

ruby1.2,AJAX更简单

浏览 4140 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2006-12-08  
还没有深入研究,只是刚接触了scaffold_resource。
首先请按照官方blog升级,然后利用scaffold_resource生成一个模型。添加以后选择删除,确认以后你发现了什么?页面没有刷新!这是什么?这就是AJAX啊!
通过原生支持Restful,AJAX将会被更简单的表达(直接调用xmlhttprequest就行,服务端无需多余代码)。另外对应的url也有了简化(自己看代码吧),index和edit的时候都不需要写:action=>:save这样的字样了。

目前我只在这个层面上看到resources的利用,rss支持自然也很好,但是同样期待更丰富的应用。

dynamic-scaffold-resource也很有趣,现在自动生成的代码是每个字段都写在表单里的,而用了它以后,又可以用'scaffold :model' 了。
   发表时间:2006-12-08  
scaffold_resource什么时候生成了Ajax调用?它连prototype都没包含。
0 请登录后投票
   发表时间:2006-12-08  
哦,我把页面无跳转刷新混同为AJAX了。现在不使用xmlhttprequest就可以实现修改和删除直接刷新了,不过实现机制好像和浏览器处理PUT和DELETE协议的特性有关。不过现在直接RESTful,controller支持AJAX的代码基本可以不写了。
0 请登录后投票
   发表时间:2006-12-08  
跳转也还是有的:
引用

Processing PostsController#destroy (for 127.0.0.1 at 2006-12-08 17:19:30) [DELET E]
  Session ID: 905dfe759a338e2488b37a5da5508a24
  Parameters: {"_method"=>"delete", "action"=>"destroy", "id"=>"6", "controller" =>"posts"}
  SQL (0.015522)    SELECT a.attname, format_type(a.atttypid, a.atttypmod), d.ad src, a.attnotnull
FROM pg_attribute a LEFT JOIN pg_attrdef d
ON a.attrelid = d.adrelid AND a.attnum = d.adnum
WHERE a.attrelid = 'posts'::regclass
AND a.attnum > 0 AND NOT a.attisdropped
ORDER BY a.attnum

  Post Load (0.032803)   SELECT * FROM posts WHERE (posts.id = 6)
  SQL (0.000082)   BEGIN
  Post Destroy (0.000437)    DELETE FROM posts
WHERE id = 6

  SQL (0.010730)   COMMIT
Redirected to http://localhost:3000/posts
Completed in 0.07706 (12 reqs/sec) | DB: 0.05957 (77%) | 302 Found [http://local host/posts/6]


Processing PostsController#index (for 127.0.0.1 at 2006-12-08 17:19:30) [GET]
  Session ID: 905dfe759a338e2488b37a5da5508a24
  Parameters: {"action"=>"index", "controller"=>"posts"}
  Post Load (0.001275)   SELECT * FROM posts
Rendering content_typetext/htmllayoutfalseactionindex within layouts/posts
Rendering posts/index
Completed in 0.01207 (82 reqs/sec) | Rendering: 0.00177 (14%) | DB: 0.00128 (10% ) | 200 OK [http://localhost/posts]

它在这方面的改进主要体现在post_path和method上。

scaffold_resource生成的代码中,并没有用到HTTP的DELETE,而是自己模拟的,可能是因为浏览器暂时支持不好吧。
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics