Ruby on Rails
Monday, December 1, 2014
You have to use fragment caching
and write a private method like
def sample_from_cache
@cache = read_fragment(:page => params[:page], :per_page => @per_page)
return @cache unless @cache.blank?
@cache = render_to_string(:partial => "search.html.erb", :locals => { :sample1 => Sample1.paginate(:page => params[:page], :per_page => @per_page) } )
write_fragment({:page => params[:page], :per_page => @per_page}, @cache)
end
and your action like this
def sample1
@sample1 = sample_from_cache
respond_to do |format|
format.js
end
end
sample.js.erb
jQuery('#show1').html('<%= escape_javascript ( @sample1 ) %>');
On Mon, Dec 1, 2014 at 6:24 PM, Logesh m <logesh.kar@gmail.com> wrote:
--I have a view where I have multiple things to load and I make an ajax call from the index view to add the content on success of each call and I would like to cache each of it so as to make the performance better.
index.html.erb
<div id="show1">
</div>
<script>
$.ajax({
type : "GET",
url : 'sample1',
error: function( xhr, tStatus, err ) {
$("#show1").html("Error");
}
});
</script>
test_controller.rb
def sample1
@sample1 = Sample1.paginate(:page => params[:page], :per_page => @per_page)
respond_to do |format|
format.js
end
end
sample1.js.erb
jQuery('#show1').html('<%= escape_javascript render "sample1" %>');
_sample1.html.erb
<% @sample1.each do |value| %>
<div class="name">
<%= value.name %>
</div>
<% end %>
I have thousands of name and these values do not change often and I show 100 entries on each page. So, I wanted to cache these and display instead of rendering each time.
Thanks in advance!
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/0f10881c-5e35-4169-aa8e-b4f825a4d07b%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/CAFKVRj_LKmw_LdfVRa6kGsotEn6ydRNjXD4KmbVJ1_t%3D0GMSWA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment