Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 18.06.2015, 14:34
Аватар для KosBeg
Профессор
Отправить личное сообщение для KosBeg Посмотреть профиль Найти все сообщения от KosBeg
 
Регистрация: 22.05.2015
Сообщений: 384

Сообщение от nerv_
Научи json отправлять
тоясть сам стиль кода нормальный?
// Стандартные настройки
  opt.url !== undefined ? opt.url = opt.url : opt.type = location.href;
  opt.type !== undefined ? opt.type = opt.type.toUpperCase() : opt.type = 'GET';
  opt.data = typeof opt.data === 'object' ? opt.data : null;
  opt.timeout = typeof opt.timeout === 'number' ? opt.timeout : 0;
  opt.async = opt.async !== false ? true : false;
  
  // Настройки-Колбеки
  opt.ontimeout = typeof opt.ontimeout === 'function' ? opt.ontimeout : function(data) { alert(data) };
  opt.success = typeof opt.success === 'function' ? opt.success : function(data) { alert(data) };
  opt.onerror = typeof opt.onerror === 'function' ? opt.onerror : function(data) { alert(data) };
  
  xhr = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP');

эти строчки не выглядят очень глупо и нагружено?
Ответить с цитированием
  #12 (permalink)  
Старый 18.06.2015, 14:38
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Сообщение от KosBeg
эти строчки не выглядят очень глупо и нагружено?
выглядят. Один из способов избежать этого - использовать дефолтный объект с опциями, который будет расширяеться переданным объектом
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #13 (permalink)  
Старый 18.06.2015, 14:43
Аватар для KosBeg
Профессор
Отправить личное сообщение для KosBeg Посмотреть профиль Найти все сообщения от KosBeg
 
Регистрация: 22.05.2015
Сообщений: 384

типа
$.extend(new_param, defolt_param) ?
Тут новые параметры дополняются дефолтными
Тольно надо будет написать extend на чистом JS, а не на jQuery =)
Ответить с цитированием
  #14 (permalink)  
Старый 18.06.2015, 14:47
Аватар для KosBeg
Профессор
Отправить личное сообщение для KosBeg Посмотреть профиль Найти все сообщения от KosBeg
 
Регистрация: 22.05.2015
Сообщений: 384

function extend() {
  var a = arguments, target = a[0] || {}, i = 1, l = a.length, deep = false, options;

  if (typeof target === 'boolean') {
    deep = target;
    target = a[1] || {};
    i = 2;
  }

  if (typeof target !== 'object' && !isFunction(target)) target = {};

  for (; i < l; ++i) {
    if ((options = a[i]) != null) {
      for (var name in options) {
        var src = target[name], copy = options[name];

        if (target === copy) continue;

        if (deep && copy && typeof copy === 'object' && !copy.nodeType) {
          target[name] = extend(deep, src || (copy.length != null ? [] : {}), copy);
        } else if (copy !== undefined) {
          target[name] = copy;
        }
      }
    }
  }

  return target;
}

выдергнул с ВК
Ответить с цитированием
  #15 (permalink)  
Старый 19.06.2015, 05:55
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 456

Сообщение от KosBeg Посмотреть сообщение
выдергнул с ВК
Так по короче будет
function extend(a, b) {
    for (var k in b) a[k] = b[k];
    return a;
}
var defaultOpt = {
    url: '',
    type: 'GET'
};

(function(newOpt) {
    newOpt = extend(extend({}, defaultOpt), newOpt || {});
    console.log(newOpt);
})({url: 'new'});
Ответить с цитированием
  #16 (permalink)  
Старый 19.06.2015, 10:06
Аватар для KosBeg
Профессор
Отправить личное сообщение для KosBeg Посмотреть профиль Найти все сообщения от KosBeg
 
Регистрация: 22.05.2015
Сообщений: 384

Сообщение от Rise
Так по короче будет
спасибо, но в ВК выдергнул чисто для примера
Я его уже переписал, но в Вас еще круче получилось
Ответить с цитированием
  #17 (permalink)  
Старый 19.06.2015, 13:35
Аватар для KosBeg
Профессор
Отправить личное сообщение для KosBeg Посмотреть профиль Найти все сообщения от KosBeg
 
Регистрация: 22.05.2015
Сообщений: 384

Сообщение от Rise
вот тебе документ, изучай
Ты/Вы дали ссылку на jQuery 1.11.3
а я изучаю jQuery 2.1.4.js
кстати, там я тоже часто зависаю

Последний раз редактировалось KosBeg, 19.06.2015 в 13:38.
Ответить с цитированием
  #18 (permalink)  
Старый 20.06.2015, 07:27
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Object.assign
__________________
kobezzza
code monkey
Ответить с цитированием
  #19 (permalink)  
Старый 20.06.2015, 11:20
Аватар для KosBeg
Профессор
Отправить личное сообщение для KosBeg Посмотреть профиль Найти все сообщения от KosBeg
 
Регистрация: 22.05.2015
Сообщений: 384

Сообщение от kobezzza
Object.assign
это вместо extend()?
Ответить с цитированием
  #20 (permalink)  
Старый 20.06.2015, 11:56
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Сообщение от KosBeg Посмотреть сообщение
это вместо extend()?
В твоём случае - да. Лучше юзать нативные функции STD и полифилить, чем велосипедить без необходимости.
__________________
kobezzza
code monkey
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Решение проблемы кодировок для AJAX и PHP без iconv (cp1251 в AJAX) Serge Ageyev AJAX и COMET 10 24.04.2013 20:48
Что выбрать XML или JSON для передачи Ajax - ом из PHP в JS Gozar Общие вопросы Javascript 20 16.08.2009 23:36
AJAX для ЧАЙНИКОВ (вопросы) sc2r2bey AJAX и COMET 16 10.07.2009 21:23
Использование Ajax для динамического обновления содержимого Rifmasta AJAX и COMET 0 10.07.2009 15:39