Wydaje się, że periodically_call_remote
jest przestarzałe w Rails 3, jakieś pomysły, jak osiągnąć tę samą funkcjonalność?Rails 3 odpowiednik dla periodically_call_remote
Odpowiedz
szukałem właściwy sposób to zrobić z Rails 3, ale teraz jestem przekonany, że nie ma odpowiednika do periodically_call_remote w Rails 3. Aby uzyskać dokładnie taką samą funkcjonalność wykonanej z jQuery, użyłem:
$(document).ready(
function(){
setInterval(function(){
$('#mydiv').load('/controller/action');
}, 3000);
});
Użyj funkcji setInterval
, aby okresowo uruchamiać funkcję wywołującą wywołanie AJAX. Jeśli robisz to z jQuery, to może być coś takiego:
var pollBackend = function() {
$.getJSON("/foo/bar/poll");
}
setInterval(pollBackend, 5000);
To będzie próbował sondować dany adres URL JSON danych co 5 sekund.
Jeśli naprawdę chcesz go używać, a następnie można zainstalować wtyczkę starszego, który posiada tę metodę:
http://github.com/rails/prototype_legacy_helper
Rails sprzyja teraz UJS.
Sprawdź te linki Więcej informacji na temat UJS w Rails 3:
http://railscasts.com/episodes/205-unobtrusive-javascript
http://www.simonecarletti.com/blog/2010/06/unobtrusive-javascript-in-rails-3/
Zrobiłem krótki writeup na ten temat w odniesieniu do prototypu i znacznik link_to_remote:
http://www.cowboycoded.com/2010/07/20/replacing-link_to_remote-with-ujs-in-rails-3-prototype/
Mam nadzieję że to pomoże!
Może to również pomóc: http://railscasts.com/episodes/229-polling-for-changes – johnmcaliley
to jest to, czego potrzebujesz do okresowego wywołania ajax, wymienić SOME_PATH z własnym trasie relaksującego:
<%= javascript_tag do -%>
$(document).ready(
function(){
setInterval(function(){
$.ajax({
url: "<%= some_path %>",
type: "GET",
dataType: "script"
});
}, 60000);
});
<% end -%>
plik index.js.erb będzie wyglądać następująco:
$('#mydiv').html("<%= escape_javascript(render(:partial => 'my_partial')) %>");
Jeśli chcesz nadal korzystać prototype.js, więc można zrobić co następuje:
<%= content_for :js do %>
new Ajax.PeriodicalUpdater("mydiv",
"/controller/action",
{ frequency: 5,
method: 'get' })
<% end %>
Więcej o Ajax.PeriodicalUpdater here.
- 1. Przykładowa aplikacja dla Rails 3?
- 2. Alternatywa dla wtyczki ssl_requirement dla Rails 3?
- 3. Django odpowiednik New Relic RPM dla Rails?
- 4. Odpowiednik HTML dla Ruby on Rails?
- 5. Odpowiednik ruby dla Pythona str [3:]
- 6. Rails 3 date_select tylko dla roku
- 7. Zagnieżdżony generator rusztowania dla Rails 3?
- 8. niezdefiniowana metoda `next_result 'dla Mysql2 (rails 3)
- 9. Rozwiązania autoryzacji Rails 3
- 10. Rails 3 has_many changed?
- 11. Czy Ruby/Rails ma odpowiednik ++?
- 12. Rails 3: Trasy poddomen
- 13. Releasedate for Rails 3
- 14. Rails 3 Token autentyczności
- 15. Rails 3 Rekomendacja CMS
- 16. Formularz kontaktowy w Rails 3
- 17. Rails 3 Połączyć dwie zmienne
- 18. Rails 3: niezainicjowany stała FactoryGirl
- 19. RAILS 3 - Transakcje w kontrolerach
- 20. Czy istnieje odpowiednik writeToFile dla typu "Dane" Swift 3?
- 21. Rails 3 Coffee Handler Brakujący
- 22. Rails 3 Server na EC2
- 23. Zintegruj Jaspera w Rails 3
- 24. Rails 3 Authlogic - 'acts_as_authentic' niezdefiniowany
- 25. Hierarchiczny MVC w Rails 3?
- 26. Rails 3 standardowa lista powiadomień
- 27. Gdzie jest asset_host rails 3?
- 28. Monkey Patching in Rails 3
- 29. Szukam aplikacji forum Rails 3
- 30. Problem tworzenia Rails 3 Silnik
Próba wdrożenia tego, ale zmagania. Jeśli wstawię ten kod do pliku application.js, uwzględnij domyślne ustawienia javascript w nagłówku i element DOM z id = "mydiv", to powinien on automatycznie się połączyć, prawda? Ponadto, w jaki sposób mogę dynamicznie aktualizować adres URL, na przykład, jeśli mam zagnieżdżony zasób, więc muszę załadować "/ controller /: id/action", gdzie: id jest ustawione dynamicznie? –
Aby to zrobić, po prostu dodaj element danych id-elementu do swojego elementu i załaduj go za pomocą .data() jQuery i na pewno możesz zrobić to samo z adresem URL. –