• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Ocena projektu JS + HTML + CSS

Object Storage Arubacloud
+1 głos
300 wizyt
pytanie zadane 20 czerwca 2016 w Nasze projekty przez goran. Użytkownik (930 p.)

Cześć,

skńczyłem mój pierwszy projekt w Javascripcie,coś w rodzaju aplikacji organizującej zadania oraz kontrolującej,ile czasu się nad nimi spędza.Prosiłbym o ocenę kodu,wskazanie błedów,oraz rady dotyczące pisania kodu.

http://taskorganizer.cba.pl

1 odpowiedź

+1 głos
odpowiedź 20 czerwca 2016 przez Comandeer Guru (600,730 p.)
wybrane 21 czerwca 2016 przez goran.
 
Najlepsza

Pełno rzeczy w globalnym scope – a nie powinno być nic.

clearDoneTable.addEventListener("click", function(){
	for(let i = 0; i < doneRows.length; i++){
		doneRows[i].remove();
	}
	doneRows.length = 0;
});

Wszystkie te handlery można uogólnić do jednej funkcji.

Nie lepiej wszystkie timery uaktualniać w jednym setInterval? Tak można bardzo łatwo zrobić na tyle dużo liczników, że całość padnie.

komentarz 20 czerwca 2016 przez goran. Użytkownik (930 p.)

1.Chodzi ci o coś takiego?


let doneTableDatas;
let tableRowDone;
	function endTask() {
		deleteInProgressRow();

Wiem,że nie jest to prawidłowy sposób,ale nie wiedziałem jak w inny sposób udostępnić innym funkcjom te zmienne.

2.Coś takiego?

function clearTableData(clearButton, tableRows)
table.addEventListener("click", function(){
	for(let i = 0; i < tableRows.length; i++){
		tableRows[i].remove();
	}
	tableRows.length = 0;
});

clearTableData(clearToDoTable, toDoRows);
clearTableData(clearInProgressTable, inProgressRows);
clearTableData(clearDoneTable, doneRows);

3.Mógłbyś bardziej rozjaśnić?

 

komentarz 20 czerwca 2016 przez Comandeer Guru (600,730 p.)

ad. 1) Moduły → https://addyosmani.com/writing-modular-js/ ostatecznie IIFE → http://benalman.com/news/2010/11/immediately-invoked-function-expression/

ad. 2) Raczej:

function clearTable( evt ) {
    […]
}

button.addEventListener( 'click', clearTable );

ad. 3) Teraz dla każdego zadania ustawiasz osobny setInterval. A jeśli ustawiłbyś jeden setInterval i w nim uaktualniał wszystkie zadania naraz?

komentarz 21 czerwca 2016 przez goran. Użytkownik (930 p.)
3.Nie bardzo wiem jak za pomocą jednego setInterval mógłbym sterować czasem wszystkich zadań.Gdy ustawiam clockInterval jako zmienną globalną,cała aplikacja się buguje i nie mogę stopować timerów.Mógłbyś mi dać jakąś wskazówkę?
komentarz 21 czerwca 2016 przez Comandeer Guru (600,730 p.)
Robisz sobie tablicę "timerów" (obiektów, które trzeba uaktualnić), po czym co sekundę przelatujesz po tej tablicy i odświeżasz znajdujące się w niej czasy.

Podobne pytania

0 głosów
1 odpowiedź 288 wizyt
pytanie zadane 15 lipca 2016 w Nasze projekty przez oiomek Nowicjusz (170 p.)
+4 głosów
3 odpowiedzi 2,538 wizyt
0 głosów
1 odpowiedź 314 wizyt

92,540 zapytań

141,382 odpowiedzi

319,481 komentarzy

61,928 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...