{% else-1 %}
Обновить | Подписаться | Поднять тему
Чтобы выполнить действие авторизируйтесь или пройдите регистрацию на сайте.
41.
Kuznetsov * [мошенник] 7.73
(29 июл 2014, 09:03) [0/0] [0] [отв] [спам] [под] +1 | -1
t,fkf;f,fufl.re,

проблему решил?

42. [автор] (29 июл 2014, 09:03) [0/0] [0] [отв] [спам] [под] +1 | -1
Kuznetsov,

у меня небыло проблел, первые посты прочитай.

43.
Kuznetsov * [мошенник] 7.73
(29 июл 2014, 09:07) [0/0] [0] [отв] [спам] [под] +1 | -1

ebalazhabagadyuku, были, Get отправлял null.

Я просто только глаза открыл, не обращай пока на меня внимания.

44. [автор] (29 июл 2014, 09:48) [0/0] [0] [отв] [спам] [под] +1 | -1
Kuznetsov,

[code]// if GET method
else {
XMLHttpRequest.open(args.method, args.url + '?' + args.vars, true);
//
XMLHttpRequest.send(null);[/code]

45. (29 июл 2014, 11:42) [0/0] [0] [отв] [спам] [под] +1 | -1

ebalazhabagadyuku, да какая разница на что смахивает? Главное функционал и удобство. А передавать параметры объектом куда удобнее, чем руками формировать строку при каждом вызове функции. Формирование строки параметров тоже действие, которое придется повторять при каждом использовании функции! Но ведь смысл функции в том, чтобы избежать повторений кода.
Добавлено 29.07.14 в 12:07:58:
Ох и навели тут офтопа * Завязывайте, тема ещё не закрыта, а значит есть что обсудить ПО ТЕМЕ.

46. (29 июл 2014, 12:09) [0/0] [0] [отв] [спам] [под] +1 | -1
Hatsune Miku,

А твоя задача, как программиста, не выучивать всё подряд, а быть в курсе, знать, что есть и при необходимости применять. А насчёт мозга - уж поверь, он куда эффективнее сервера!


Изм. 1 раз. / Посл. изм. (29 июл 2014, 12:24)
47. (29 июл 2014, 12:24) [0/0] [0] [отв] [спам] [под] +1 | -1

ebalazhabagadyuku,
А что касается отдельного контейнера для ошибок, так это куда удобнее, чем в контейнер для контента выводить. Во-первых, ты каждый контейнер ты можешь навесить соответствующие стили (ошибки обычное делают красными, так чтобы они сразу бросались в глаза). Во-вторых, сообщение об ошибке может понадобиться организовать всплывающим диалогом или ещё как... вариантов может быть много.

Как вариант, я вижу возможность совместить оба варианта: в функции проверяешь, если контейнер для ошибки не задан, то используешь контейнер для содержимого.

48. [автор] (29 июл 2014, 12:34) [0/0] [0] [отв] [спам] [под] +1 | -1
ex0rc1st,

а если сделать как в jquery?
success: function() {..},
fail: function() {...}

понимешь?

49. (29 июл 2014, 13:48) [0/0] [0] [отв] [спам] [под] +1 | -1
t,fkf;f,fufl.re,

Можно и так *
Вообще, было бы хорошо встроить индикатор загрузки в механизм.

Т.е. где-то на странице мы имеем скрытый элемент типа такого:
<div id="ajax-loader" style="display:none"><img src="loader.gif"></div>

В js будет что-то вроде:
ajax({
loader_id: "loader",
...
});

А внутри функции перед отправкой запроса делаем видимым индикатор, по завершении display: none;

А callback'и пусть служат для обработки ответа или ошибки.
В таком случае можно выкинуть параметры response_container_id и error_container_id. Пусть всей обработкой информации и выводом занимаются callback'и.
Добавлено 29.07.14 в 17:28:40:
Как сделаешь новую версию выгружай сюда js файл. Я может че добавлю, и будет норм функция!

50. [автор] (30 июл 2014, 13:17) [0/0] [0] [отв] [спам] [под] +1 | -1

Всё, готовый вариант.

[code]// ajax 0.0.1

function ajax(method, url, vars, async, response_at, error_at) {

if (response_at) var e_response = document.getElementById(response_at);
var e_error = document.getElementById(error_at);

// check XMLHttpRequest supported
if (window.XMLHttpRequest) {


// make new object
var XHR = new XMLHttpRequest();
// request handler
XHR.onreadystatechange = function () {
// request state
if (XHR.readyState == 4) {
// if success
if (XHR.status == 200) {
// if responsed
if (e_response) e_response.innerHTML = XHR.responseText;
}
else {
// if fail
e_error.innerHTML = 'Ошибка.';
}
}
}

// if post method
if (method == 'POST') {

XHR.open(method, url, async);

// if method POST add header
XHR.setRequestHeader("content-type", "application/x-www-form-urlencoded"*;
// sending..
XHR.send(vars);
}
else {
// if get method
// add vars at url string
XHR.open(method, url + '?' + vars, async);
// sending..
XHR.send(null);
}
}
else {
// if can't supported ActiveX
e_error.innerHTML = 'Ошибка. Включите поддержку ActiveX.';
}
}[/code]


Изм. 4 раз. / Посл. изм. (30 июл 2014, 13:45)
Чтобы писать сообщения авторизируйтесь или пройдите регистрацию на сайте.
Подписаны: 2
Скачать тему | Файлы темы | Фильтр сообщений