Jquery RubyonRails和AJAX设计最佳实践
我正在准备一个带有RoR的web应用程序,并希望从HTML5实现历史API 假设我有一个控制器'Item',一个视图'Item\u view',在'Item\u view'中有一个div'div' 当我动态加载“div”(例如单击)时,我是否:Jquery RubyonRails和AJAX设计最佳实践,jquery,ruby-on-rails,ajax,html,Jquery,Ruby On Rails,Ajax,Html,我正在准备一个带有RoR的web应用程序,并希望从HTML5实现历史API 假设我有一个控制器'Item',一个视图'Item\u view',在'Item\u view'中有一个div'div' 当我动态加载“div”(例如单击)时,我是否: 调用控制器“项”,然后选择有问题的“div”,或 调用仅加载“div”的单独控制器 第一个选项与加载整个页面消耗相同的资源,这里的AJAX是无用的(对吧?)。但是第二个选项意味着我需要为我想要动态加载的页面的每一部分使用一个控制器。还是有别的方法?有
- 调用控制器“项”,然后选择有问题的“div”,或
- 调用仅加载“div”的单独控制器
谢谢。我会调用您通常调用的项目控制器和操作(显示、新建、编辑)。将div代码放入名为_item_view.html.erb的部分中 使用带有AJAX请求的respond_-to-block,您可以只加载所需的部分以及部分所需的对象,而不是加载show/edit/new操作的整个HTML块。如果不需要构建任何对象,只需删除@items实例变量和:collection=>@items赋值 因此,如果要显示一个项集合,下面将为@items集合中的每个项呈现部分item_视图,并将其返回给JavaScript
def index
@items = Item.all
respond_to do |format|
format.html {...code...}
format.js {
render :layout => false, :partial => 'item_view', :collection => @items
}
end
end
我将调用您通常调用的项目控制器和操作(show、new、edit)。将div代码放入名为_item_view.html.erb的部分中 使用带有AJAX请求的respond_-to-block,您可以只加载所需的部分以及部分所需的对象,而不是加载show/edit/new操作的整个HTML块。如果不需要构建任何对象,只需删除@items实例变量和:collection=>@items赋值 因此,如果要显示一个项集合,下面将为@items集合中的每个项呈现部分item_视图,并将其返回给JavaScript
def index
@items = Item.all
respond_to do |format|
format.html {...code...}
format.js {
render :layout => false, :partial => 'item_view', :collection => @items
}
end
end
也许你应该调用同一个控制器,但为不同的部分添加不同的操作…也许你应该调用同一个控制器,但为不同的部分添加不同的操作。。。