Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.02.2017, 12:24
Аватар для Stay_Strong
Аспирант
Отправить личное сообщение для Stay_Strong Посмотреть профиль Найти все сообщения от Stay_Strong
 
Регистрация: 14.10.2015
Сообщений: 37

Как данный код написать на чистом js
Всем привет. Вроде и читал про ajax, и все равно очень туплю. В общем с jquery все работает, и его понимаю. А хочется чистый js.. Но не выходит
Как написать такой код на нативном javascript?!

function showTime() {
   $.ajax({
     url: '/php/time.php',
     cache: false,
     success: function(html) {
       $('#time').html(html);
     }
   })
 }
 setInterval('showTime()', 500)


Пищу вот так, но он ругается
var httpRequest = new XMLHttpRequest(),
      elem = document.getElementById('time');

  httpRequest.open('GET', '/php/time.php', false);
  httpRequest.send();

  if (httpRequest.status = 200) {
    (function (html) {
      elem.innerHTML(html);
    })
  } else {
    //здесь обрабатываем ошибку
  }
Ответить с цитированием
  #2 (permalink)  
Старый 12.02.2017, 12:43
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,149

Stay_Strong,
https://learn.javascript.ru/ajax-xml...запросы
Ответить с цитированием
  #3 (permalink)  
Старый 12.02.2017, 12:46
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

Цитата:
if (httpRequest.status = 200)
if (httpRequest.status == 200) {
    elem.innerHTML(httpRequest.responseText);
  } else {
    //здесь обрабатываем ошибку
  }
Ответить с цитированием
  #4 (permalink)  
Старый 12.02.2017, 12:56
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,149

Stay_Strong,
страшилка
в jquery по умолчанию асинхронный вариант запроса на сервер, а ваш код синхронный, его использовать не рекомендуется.браузер будет ждать ответ сервера и блокируя всё на экране.
Ответить с цитированием
  #5 (permalink)  
Старый 12.02.2017, 13:05
Аватар для Stay_Strong
Аспирант
Отправить личное сообщение для Stay_Strong Посмотреть профиль Найти все сообщения от Stay_Strong
 
Регистрация: 14.10.2015
Сообщений: 37

destus,Спасибо. Он мне пишет, что
elem.innerHTML is not a function

Последний раз редактировалось Stay_Strong, 12.02.2017 в 13:07.
Ответить с цитированием
  #6 (permalink)  
Старый 12.02.2017, 13:07
Аватар для Stay_Strong
Аспирант
Отправить личное сообщение для Stay_Strong Посмотреть профиль Найти все сообщения от Stay_Strong
 
Регистрация: 14.10.2015
Сообщений: 37

рони,Конечно, страшилка. Начал по учебнику что выше все с нуля читать, потому что писать на jquery даже плагины пробовал и выходит. Но как перехожу на чистый js - вообще полный ступор. Ajax только изучаю первый день.
Ответить с цитированием
  #7 (permalink)  
Старый 12.02.2017, 13:08
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,149

Stay_Strong,
значит ещё нет элемента на странице -- ставить код вниз страницы или window.load использовать
Ответить с цитированием
  #8 (permalink)  
Старый 12.02.2017, 13:15
Аватар для Stay_Strong
Аспирант
Отправить личное сообщение для Stay_Strong Посмотреть профиль Найти все сообщения от Stay_Strong
 
Регистрация: 14.10.2015
Сообщений: 37

рони,
Код стоит в самом низу перед закрывающимся body. Если делаю запрос синхронным, то ошибок нет, но и запрос не выполняется.

В jquery если использую $( document ).ready() - запрос также не проходит. Я не понял даже почему. window.load тоже не работает.
Ответить с цитированием
  #9 (permalink)  
Старый 12.02.2017, 13:18
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,149

Stay_Strong,
такое лучше проверять на сервере а не локально
Ответить с цитированием
  #10 (permalink)  
Старый 12.02.2017, 13:22
Аватар для Stay_Strong
Аспирант
Отправить личное сообщение для Stay_Strong Посмотреть профиль Найти все сообщения от Stay_Strong
 
Регистрация: 14.10.2015
Сообщений: 37

рони,
так вот и интересно. Я вывожу
if (httpRequest.status == 200) {
    console.log(elem)
    elem.innerHTML(httpRequest.responseText);//ответ от сервера в виде строки
  }


и он в консоль мне выдает мой элемент. И ошибка с ним тоже сваливается... Странно немного.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как узнать, из чего был собран js код sta-ger Сборка проекта, утилиты 0 27.07.2015 13:23
Как вы относитесь к наркоманам? Maxmaxmaximus7 Оффтопик 7 05.02.2014 13:29
Посоветуйте как улучшить код для работы с history api [ jquery + js + history api ] Geo Ваши сайты и скрипты 0 12.01.2014 00:41
можно ли с помощью js написать код для симуляции нажатия на клавиш. KamalovRadik Мобильный JavaScript 7 17.02.2012 22:27
Как в JS написать такое условие if (isset($_COOKIE['name'])) ? Триви Общие вопросы Javascript 2 14.08.2011 11:53