Ajax example
window.onload = function() {
/*var url = "http://html5/bgum/sales.json";
var url = "http://gumball.wickedlysmart.com/?callback=updateSales";
var request = new XMLHttpRequest();
request.open("GET", url);
request.onload = function() {
if(request.status == 200) {
updateSales(request.responseText);
}
}
request.send(null);*/
}
/*function updateSales (responseText) {
var salesDiv = document.getElementById("sales");
var sales = JSON.parse(responseText);
sales.forEach(function(magaz){
var div = document.createElement("div");
div.setAttribute("class", "saleItem");
div.innerHTML = magaz.name + " sold " + magaz.sales + " gumballs";
salesDiv.appendChild(div);
})
}
*/
window.onload = function(){
setInterval(handleRefresh, 3000);
}
// window.addEventListener("onload", function(){
// setInterval(handleRefresh, 3000)
// });
var lastReportTime = 0;
function handleRefresh () {
var url = "http://gumball.wickedlysmart.com/?callback=updateSales" + "&lastreporttime=" + lastReportTime + "&random=" + (new Date()).getTime();
var newScript = document.createElement("script");
newScript.setAttribute("src", url);
newScript.setAttribute("id", "jsonp");
var oldScript = document.getElementById("jsonp");
var head = document.getElementsByTagName("head")[0];
if(oldScript == null) {
head.appendChild(newScript);
}
else {
head.replaceChild(newScript, oldScript);
}
}
function updateSales (sales) {
var salesDiv = document.getElementById("sales");
// var sales = JSON.parse(responseText);
sales.forEach(function(magaz){
var div = document.createElement("div");
div.setAttribute("class", "saleItem");
div.innerHTML = magaz.name + " sold " + magaz.sales + " gumballs";
salesDiv.appendChild(div);
});
if(sales.length > 0) {
lastReportTime = sales[sales.length-1].time;
}
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<button id="myButton">Загрузить</button>
<div id="container"></div>
<script>
/* myButton.addEventListener('click', () => {
let xhr = new XMLHttpRequest();
xhr.open('GET', 'test.txt');
xhr.addEventListener('load', () => {
console.log("Ответ получен! ", xhr.responseText);
container.innerHTML = xhr.responseText;
});
xhr.send();
});*/
function sendAjax(url) {
return new Promise((resolve, reject) => {
let xhr = new XMLHttpRequest();
xhr.open('GET', url);
xhr.addEventListener('load', () => {
resolve(xhr.responseText);
});
xhr.addEventListener('error', () => {
reject();
});
xhr.send();
});
}
myButton.addEventListener('click', () => {
sendAjax('test.txt').then((responseText) => {
console.log('Файл загружен');
container.innerText = responseText;
return responseText;
},
() => {
console.log('Произошла ошибка при загрузке файла!');
}).then(responseText => {
console.log('получен ответ от сервера ', responseText);
});
})
</script>
</body>
</html>
<button id="littleButton">Отправить запросы</button>
<div id="content"></div>
<script>
function sendRequest (url) {
return new Promise((resolve, reject) => {
const xhr = new XMLHttpRequest();
xhr.open("GET", url, true);
xhr.send();
xhr.addEventListener('load', () => {
resolve(xhr.response);
});
});
}
const littleButton = document.querySelector('#littleButton');
const content = document.querySelector("#content");
littleButton.addEventListener('click', () => {
Promise.all([
sendRequest('file.txt'),
sendRequest('file1.txt')
]).then(results => {
console.log(results);
content.textContent = [...results];
})
})
</script>