Переход при нажатии на checkbox

T7
На сайте с 19.09.2018
Offline
63
#51
Aisamiery:
fetch

Это да, круто, как и всё где промисы нужны, а сделано без них😕

Но, с fetch пока не спешу. Полифилл сильно больше старого xhr с напильником (промисе).

ArbNet, пара изменений в вашем коде, чтобы намекнуть:

else xhr.open('GET',way,true);


xhr.onreadystatechange = function () {
if(xhr.readyState === XMLHttpRequest.DONE && xhr.status === 200) {
console.log('Response content-type', xhr.getResponseHeader('content-type'));
}
}

content-type и всякие стандарты важно, и под них надо подстроиться

if($res) {  

echo json_encode(
['data'=>[ 'text'=>$res,
'animal'=>$_GET['animals'],
'memusage'=>$m
]
]); die;

На json обратите внимание. Как минимум функцию parsing сократите.

Потом, когда fetch в полный рост встанет, весь ваш код уместится в нескольких строках.

document.querySelectorAll('input[type=checkbox]').forEach( el=>{

el.addEventListener('change', function(e){
const el = e.target||console.error('old browser'); //все равно фетч потом,
if(el.checked){
fetch('ajax.php?animals='+el.value)
.then(response => response.json())
.then(data => console.log(
'Response', data,
'Element', el,
'Dataset', el.dataset,
'Все что надо есть, делаем что хотим' ));
}
});
})
Mukhinhack
На сайте с 27.01.2020
Offline
17
#52

Мои 3 класса образования запрещают делать выводы

ArbNet
На сайте с 27.10.2019
Offline
140
#53

timo-71, Согласен.

Я переделываю потихоньку свои скрипты с старого движка применяя новые возможности. Но думаю XMLHttpRequest пока ещё рано удалять, в современных браузерах он работает и для совместимости с старыми сгодится ещё.

Aisamiery
На сайте с 12.04.2015
Offline
317
#54
timo-71:
Это да, круто, как и всё где промисы нужны, а сделано без них😕
Но, с fetch пока не спешу. Полифилл сильно больше старого xhr с напильником (промисе).

fetch поддерживает почти 94% всех пользователей в мире, не поддерживается только IE и опера мини

например тот же let поддерживает 95% но вы же не юзаете var везде? Тут дело в том, что будут всегда пользователи на диназавровских браузерах и они уже в целом привыкли страдать, вам то зачем привыкать к этому?

Разработка проектов на Symfony, Laravel, 1C-Bitrix, UMI.CMS, OctoberCMS

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий