Доброго времени суток. Возникла проблема в обновлении контента динамическим путем. Есть django-server и ajax запросами с помощью setInterval() вытягиваю данные с сервера. Так вот в django-templates заготовил шаблон с jquery кодом и при отправке с сервера на ajax, делаю рендер с помощью .append() либо .html(). Все прекрасно работает при обновлении страницы. Но мне кажется что то что я якобы срендрил как текст падает в dom, но JQ не выполняет его потому что это не типа "консоли", а выполняет он только те вещи которые у него впереди. Я правильно понимаю?
Ладно вот собственно код с django:
from django_ajax.decorators import ajax
from message.models import Message
from django.utils import timezone
@ajax
def index(request):
context={
"friends":[],
"messages":[],
}
index=0
if Message.objects.unread_messages_count(request.user)!=0:
for message in Message.objects.filter(to_user=request.user,viewed__isnull=True,messaged__isnull=True):
index+=1
context["messages"].append({
"message":message.message[:255],
"user":message.from_user.get_full_name,
"duration":index*2200+6000
})
message.messaged=timezone.now()
message.save()
return render(request, 'message.html',context)
Призываю данные с пом. эйджакс:
<script src="{% static 'scripts/js/jquery-latest.js' %}"></script>
<script type="text/javascript" src="{% static 'django_ajax/js/jquery.ajax.min.js' %}"></script>
<script src="{% static 'scripts/js/jquery.growl.js' %}"></script>
<link rel="stylesheet" href="{% static 'scripts/css/jquery.growl.css'%}">
<script>
function ajax_updates() {
ajaxGet("{% url 'ajax_updates' %}",function(content){
$('#notifications').append(content);
})
}
setInterval(ajax_updates, 5000);
ajax_updates();
</script>
<script id="notifications"></script>
Когда все подгружается(При загрузке страницы), все работает прекрасно. А вот когда страница уже загружена и javascript-у больше ничего не остается разве что идти дальше и ждать новых событий но мой append как бы уже в выполненный фрагмент навешивает код который просто не просматривается и не выполняется JQ.
Вот собственно код шаблона message.html:
{% for message in messages %}
$.growl({ title: "{{message.user}}", message: "{{ message.message }}",duration: {{message.duration}}});
{% endfor %}
Нужна ваша помощь! Буду очень признателен!))