Как узнать, есть ли в браузере AJAX (Django) - PullRequest
0 голосов
/ 12 декабря 2011

В моем приложении Django я хотел бы знать, имеет ли браузер, используемый клиентом, AJAX или нет. Это потому что у меня, например, редактирование профиля. У меня есть версия, которая редактирует профиль пользователя на месте, и еще одна версия, которая перенаправляет вас на страницу редактирования.

Я знаю, что в настоящее время большинство браузеров имеют AJAX, но просто чтобы убедиться, как я могу проверить это в приложении Django?

Ответы [ 4 ]

1 голос
/ 18 декабря 2011

Я считаю, что правильнее было бы использовать некую постепенную деградацию и проверять наличие ajax в запросе, используя метод request.is_ajax() Джанго

https://docs.djangoproject.com/en/dev/ref/request-response/#django.http.HttpRequest.is_ajax

По вашему мнению, было бы что-то вроде

if form.is_valid():
    if request.is_ajax():
        return simplejson.dumps(something)
    return redirect('/some-url/)
1 голос
/ 12 декабря 2011

Нюхание агента пользователя и тому подобное не рассматривается как лучшее решение ... если вы можете себе это позволить, лучше используйте такие проекты, как hasjs на стороне клиента, чтобы проверить, действительно ли способен пользовательский браузер, и каким-то образом отправить информацию на сервер. (например, обслуживая страницу проверки, когда сеанса нет, пусть он выполняет проверки и публикует результаты на сервере, который затем создает сеанс и запоминает возможности этого сеанса или что-то подобное).

0 голосов
/ 18 декабря 2011

Я не нашел способа сделать это, поэтому я мог подготовить версию без JavaScript и версию моего шаблона на JavaScript.

Я загружаю файл .js, и он заменяет его.все ссылки на другие страницы с ссылками AJAX.Поэтому, если у пользователя нет JavaScript, он увидит все исходные ссылки и функциональные возможности, а если у него есть JavaScript, он увидит все функциональные возможности AJAX.

0 голосов
/ 12 декабря 2011

Если вы хотите знать, поддерживает ли браузер AJAX, вам нужно знать возможности браузера, вам нужен этот проект:

https://github.com/clement/django-wurfl/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...