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

Ocena projektu JS + HTML + CSS

+2 głosów
273 wizyt
pytanie zadane 20 czerwca 2016 w Nasze projekty przez goran. Użytkownik (940 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 (579,060 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 (940 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 (579,060 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 (940 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 (579,060 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

+1 głos
1 odpowiedź 268 wizyt
pytanie zadane 15 lipca 2016 w Nasze projekty przez oiomek Nowicjusz (180 p.)
+4 głosów
3 odpowiedzi 2,156 wizyt
0 głosów
1 odpowiedź 275 wizyt

89,689 zapytań

138,291 odpowiedzi

309,236 komentarzy

59,620 pasjonatów

Motyw:

Akcja Pajacyk

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

Sklep oferujący ćwiczenia JavaScript, PHP, rozmowy rekrutacyjne dla programistów i inne materiały

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...