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

Ocena projektu JS + HTML + CSS

VPS Starter 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 (599,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 (599,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 (599,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ź 287 wizyt
pytanie zadane 15 lipca 2016 w Nasze projekty przez oiomek Nowicjusz (170 p.)
+4 głosów
3 odpowiedzi 2,520 wizyt
0 głosów
1 odpowiedź 313 wizyt

92,453 zapytań

141,262 odpowiedzi

319,086 komentarzy

61,854 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...