I am trying to fetch data from an API and after that set data in web page. setting data should be done before rendering the page.
HTML code:
<div id="info">
<h1 id="p_name"></h1>
<h2>
<a href="" id="p_spec"></a>
</h2>
<h3 id="p_numberp"></h3>
<img id="p_image">
</div>
Javascript code is :
//readed data from API
var page_data = {};
window.addEventListener('DOMContentLoaded', async function(){
var parameters = location.search.substring(1).split("?");
await fetchdata(parameters[0], function(){
setdata();
});
});
async function fetchdata(id, callback) {
url = "https://my_url" + id;
fetch(url)
.then((resp) => resp.json()) // Transform the data into json
.then((data) => (page_data = data));
callback();
}
function setdata() {
document.getElementById("p_name").innerHTML = page_data.name;
document.getElementById("p_spec").innerHTML = page_data.spec;
document.getElementById("p_image").src = page_data.avatar;
}
I tried this but it does not work (when i opened the web page, all items are undefined). thanks.