Asynchronous Programming - Exercise, 6. Blog
Здравейте,
Търся решение на тази задача със 100 точки. Не успявам да изкарам повече от 50. Локално всичко изглежда чудесно, ето го моят код:
https://pastebin.com/b7kZzpuk.
Здравейте,
Търся решение на тази задача със 100 точки. Не успявам да изкарам повече от 50. Локално всичко изглежда чудесно, ето го моят код:
https://pastebin.com/b7kZzpuk.
;-)
function attachEvents() {
document.getElementById('btnLoadPosts').addEventListener('click', getAllPosts);
document.getElementById('btnViewPost').addEventListener('click', displayPost);
}
attachEvents();
async function displayPost() {
const titleElement = document.getElementById('post-title');
const bodyElement = document.getElementById('post-body');
const ulElement = document.getElementById('post-comments');
const selectedId = document.getElementById('posts').value;
titleElement.textContent = 'Loading...';
bodyElement.textContent = '';
ulElement.replaceChildren();
const [post, comments] = await Promise.all([
getPostById(selectedId),
getCommentsbyPostId(selectedId),
]);
titleElement.textContent = post.title;
bodyElement.textContent = post.body;
ulElement.replaceChildren();
comments.forEach(c => {
const liElement = document.createElement('li');
liElement.textContent = c.text;
ulElement.appendChild(liElement);
})
}
async function getAllPosts() {
const url = `http://localhost:3030/jsonstore/blog/posts`;
const res = await fetch(url);
const data = await res.json();
const selectElement = document.getElementById('posts');
selectElement.replaceChildren();
Object.values(data).forEach(p => {
const optionElement = document.createElement('option');
optionElement.textContent = p.title;
optionElement.value = p.id;
selectElement.appendChild(optionElement);
});
}
async function getPostById(postId) {
const url = `http://localhost:3030/jsonstore/blog/posts/` + postId;
const res = await fetch(url);
const data = await res.json();
return data;
}
async function getCommentsbyPostId(postId) {
const url = `http://localhost:3030/jsonstore/blog/comments`;
const res = await fetch(url);
const data = await res.json();
const comments = Object.values(data).filter((x) => x.postId == postId);
return comments;
}
Благодаря за бързия отговор, но и твоят код дава 50 точки... На мен ми е интересно да разгледам решение, което дава максималният брой точки, за да си изясня какво пропускам. Явно има някакви допълнителни изисквания, които трябва да се съобразят...
Ooops sorry. From all the solutions that I have for this exercise, they all gave 50% apparently - actually the trainer should finish up this one (not reply with "Ask people at discord...") and explain how to achieve 100%, since many students only have 50%.
Thanks to Nikolay for the 100% code =>
Супер! Явно judge се сърди ако се правят повече заявки от зададеното.... Решението дава 100/100, след като поправих един ред от това, което ми прати последно, за дда закача правилно коментарите:
=> for (let commentInfo of Object.values(data))
Благодаря за решението!
аз мога да ви помогна с някои общи съвети за оптимизация на вашия код.
Прегледайте внимателно условието на задачата: Уверете се, че разбирате изискванията и ограниченията на задачата. Уверете се, че вашият код отговаря на всички изисквания и правилен формат на входните и изходните данни.
Тествайте с големи входни данни: Уверете се, че вашият код работи коректно и справедливо при големи входни данни. Пробвайте с по-големи тестове, за да видите дали кодът ви се справя с ефективност и скорост. tunnel rush