Showing posts with label js. Show all posts
Showing posts with label js. Show all posts

Thursday, November 24, 2011

Замітка по ajax і jquery

Так приблизно виглядає запит ajax для спілкування js із сервером на якому у вас працює скоріш за все php.
 $.ajax({
      url: "необхідні урл",
      data: (необхідні дані),
      success: function(data){
                   обробляємо успішну відповідь
      },
      error: function(msg){
                  обробляємо помилку що виникла
      },
      dataType: "необхідний тип даних",
      type: "МЕТОД ПЕРЕДАЧІ",
});


По заголовку ($.ajax ) зрозуміло що використовується jquery. Про сам ajax і про той же jquery і про них разом можна багато чого почитати користуючись гуглом).
Я хотів тільки привернути увагу до обробки відповідей від сервера, а саме якщо ви використовуєте передачу даних в форматі JSON який вказується в dataType, то не потрібно сподіватись що дані повернуться в якомусь іншому форматі). Записати дані форми найпростіше так: $("#form_name").serialize(). Отримані дані поміщаються в змінну data що передається в функцію в якості аргумента, щоб побачити ці дані вам не вистачить написати alert(data) так як це виведе тільки [object Object] чи щось в тому дусі, отже пишемо alert(JSON.stringify(data)) що і виведе нам всю структуру json об'єкта, що прийшов із сервера. При невдалому опрацюванні запиту буде викликатись функція з error, а в якості аргумента буде передаватись відповідь, та вона на відміну від попереднього випадку не змінюється від типу передачі, і дані з неї можна отримати написавши так: alert(msg.responseText).
І того маємо наступне:
$.ajax({
      url: "mysite.com/mypage",
      data: ($("#form_name").serialize()),
      success: function(data){
                   alert(JSON.stringify(data));
      },
      error: function(msg){
                  alert(msg.responseText);
      },
      dataType: "JSON",
      type: "POST",
});


А ось лінк по даній темі): api.jquery.com/jQuery.ajax

Friday, August 19, 2011

Нюанс .css(jquery) і .style(js)

Це замітка відносно нюанів між методами style в JavaScript і css в JQuery. На даний момент я найшов одну розбіжність, але в подальшому я буду доповнювати дану замітку якщо ще щось знайду.
Отже перша розбіжність це те що .css('background') нічого не поверне на відміну від .style.background який повертає всі значення даного атрибуту до прикладу url() no-repeat і т.д.
Для того щоб отримати дані атрибути з допомогою .css потрібно писати кожний атрибут роздільно, припустимо якщо вам треба дізнатись url() то пишемо .css('background-image').
На цьому і все, продовження буде))

Sunday, August 14, 2011

Чому не визначається висота елемента з допомогою JS

Це скоріше не стаття а замітка яка стосується визначення висоти елемента з допомогою JavaScript. Всі знають що є багато способів це зробити, а саме з допомогою методу в jQuery .height() або стандартними способами типу .offsetHeight, .clientHeight потрібного елемента також можна отримати дані з CSS відповідного елемента getComputedStyle або currentStyl. Якщо висота елемента є динамічною то її можна визначити першим способом але тільки в тому випадку якщо елемент є видимим!!!
Отже якщо display встановлений в none, то висота такого елемента буде 0, саме на цьому я і хотів наголосити даною заміткою щоб ви не наступали на такі граблі)
Але якщо все ж таки потрібно визначити висоту елемента і прицьму щоб його ніхто не бачив то можна використати такий спосіб:
position: absolute;
left: -9999px;
top: -9999px;

це якщо потрібні якісь ємнісні операції, а інакше можна просто показати елемент, визначити його характеристики і сховати при цьому користувач просто на просто не встигне побачити те що йому і не треба було бачити))