Найти - Пользователи
Полная версия: Динамическое обновление.
Начало » Django » Динамическое обновление.
1 2 3 4
FishHook
Farsatanis
Что это? Я если честно хочу избужать сокетов. Пытаюсь пока просто посредством ajax забацать это - но глухо .А с сокетами я еще глыбже зароюсь (
Дорогой друг,
"/static/file.php"
вполне вероятно, что PHP умеет делать чудеса, Django (а это форум по Django, а вовсе не по PHP) к сожалению не умеет. Вы можете пошагово по пунктам русскими словами или на крайний случай в виде PHP кода рассказать, что по вашему должно происходить на клиенте и на сервере?
Farsatanis
Я в php разбираюсь как свинья в апельсинах. Прост ону где нашел какой нибудь пример , пытаюсь его переделать под себя. В основном во всех примерах ajax используется php в url. Я точно чего то не понимаю.
FishHook , не ругайся Я очень крабский нуб. Но разобратсья охота. А сделать то что я делаю еще сильнее хочется , но уже неделю словно башкой о стенку бьюсь. И весьма вероятно что мозгов не осталось.

Farsatanis
View.py:
# Create your views here.
import os
from django.shortcuts import render
from django.shortcuts import render_to_response
log_dir = '/home/***/log'
def list_files(request):
    file_list = [f for f in os.listdir(log_dir) if
                 os.path.isfile(os.path.join(log_dir, f))]
    return render_to_response('list_files.html', {'file_list':file_list})             
    
def view_log(request, filename):
    logfile = open(os.path.join(log_dir, filename), 'r')
    loglines = logfile.read()
    return render_to_response('view_logfile.html', {'loglines': loglines,
                                                    'filename': filename})   
   
urls.py:
from django.conf.urls import patterns, url
from polls import views
urlpatterns = patterns('',
    url(r'^$', views.list_files, name='list_files'),
    url(r'^(?P<filename>.*?)/$', views.view_log, name='view_log'),
    
)
<!DOCTYPE HTML>
<html>
<head>
    <title>View file</title>
      
</head>   
<body>
<script src="/static/jquery.js" type="text/javascript"></script>
<pre style ="background:beige;text-align:center;font-size:20px">{{loglines}}</pre>
</body> 
</html>

Вот собственно основные мои убогенькие файлы. Есть еще 1 , но он тут не играет роли.
И как отталкиваясь от того что я имею намутить ajax(да, я знаю что форум по Django) без юзанья сокетов.
FishHook
Начнем с того, как клиент должен узнать о том, что файл изменился?
Каким образом к нему должна поступить сия информация?
Есть два способа получить информацию:
1. Запросить её у источника информации
2. Источник информации сам её тебе сообщает без запроса.

Тебя какой случай интересует?
Farsatanis
Честно , я об этом даже не задумывался. Пускай будет 1.
FishHook
Farsatanis
Честно , я об этом даже не задумывался. Пускай будет 1.
Я тебе на первой странице рассказал, в чем разница между аяксом и веб-сокетами.
Пускай будет 1
Ну пускай.
Клиент у нас запрашивает изменение. Возникают вопросы, а в какой момент будет уходить запрос?
Вижу два варианта:
1. По таймеру, скажем раз в пять секунд спрашиваем сервер “А не изменился ли файл?”
2. По событию, какому событию, я не знаю, например при изменении текста в textarea или по нажатию кнопки “обновить”.

Какой вариант тебе больше нравится?
Farsatanis
Я больше склоняюсь к первому. Я даже пытался его сделать, но как то безуспешно.
FishHook
Ок, теперь вопрос, а какая собственно информация должна уходить к серверу и какая приходить в ответ?
Ну, однозначно, название файла (его айди, url, что-то еще, не важно) и, наверное, время последнего обновления. Сервер, должен найти файл по названию (айди и тп.) и сравнить время последнего изменения со временем, которое пришло от клиента. Если оно больше, то сервер должен отправить на клиента…. Что? Весь файл? Или только обновленный кусок? А если кусков несколько? Позицию начала и конца изменения?


А может быть заюзать какой-нибуть CVS?
http://ru.wikipedia.org/wiki/CVS и не изобретать велосипед?
Farsatanis
Ну можно заюзать я правда так даже не думал делать

Но у меня эти фалы которые открываются - это просто логи.
inoks
Вот тебе домашнее задание:
1) сделай урл /check_state который вернет json
{is_updated: true} если были изменения файлов
или
{is_updated: false} если их не было
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB