1 / 43

Zašto JavaScript? Zašto danas?

Zašto JavaScript? Zašto danas?. JS zadovoljava potrebe današnjeg Interneta. JS je nastao u browseru. Kako funckionira web browser?. URL. HTML. GET CSS. GET IMAGE. GET JS. HTML stranica. HTML  recept za izgradnju stranice CSS  izgled JS  dinamičnost. Event driven i asinkronost.

liseli
Download Presentation

Zašto JavaScript? Zašto danas?

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Zašto JavaScript?Zašto danas?

  2. JS zadovoljava potrebe današnjeg Interneta

  3. JS je nastao u browseru

  4. Kako funckionira web browser? URL HTML GET CSS GET IMAGE GET JS

  5. HTML stranica HTML recept za izgradnju stranice CSS izgled JS dinamičnost

  6. Event driven i asinkronost

  7. Event driven • Jedan event loop • Zaprimanje evenata • Akcije/odgovor na evente

  8. Što znači sinkronost? • Sinkrono = blokirajuće SERVER Baza

  9. Asinkronost • Asinkron = ne blokirajući = brz SERVER BAZA

  10. Zašto su ove karakteristike bitne u browseru?

  11. Ostale karakteristike JS-a

  12. Varijable su dinamičke var a = ‘neki string’; a = 3; var b = a + 5; a = [0, 2, 5];

  13. Tipovi varijabli • Number • String • Boolean • Null • Undefined • Object • Function

  14. Number var a = 3; var b = 5; var sum = a + b; console.log(sum); //8

  15. string var a = „Sum is ”; var b = „8”; var sum = a + b; console.log(sum); //Sum is 8

  16. Null, undefined var a = null; var b; console.log(a); //null console.log(b); //undefined console.log(c); //undefined

  17. Objekt • Key – value var school = { name : „V.gimnazija”, numberOfStudents : 3000 }; school.address = „Klaićeva”; console.log(school[‘address’] ) // „Klaićeva”

  18. JS objekt == JSON

  19. funkcije function isprobajMe(unos) { console.log(unos); } isprobajMe(„lo12”); //lo12 isprobajMe(234); //234 console.log(isprobajMe.name); //isprobajMe

  20. funkcije var isprobajMe = function (unos) { console.log(unos); } isprobajMe(„lo12”); //lo12 isprobajMe(234); //234 console.log(isprobajMe.name); //undefined

  21. funkcije function zbroji(a, b) { var suma = a + b; return suma; } var suma = zbroji(4,7); console.log(suma); //11

  22. funkcije function ispisi(unos) { console.log(unos); } function zbroji(a, b, funkcijaKaoArgument) { var zbroj = a + b; funkcijaKaoArgument(zbroj); } zbroji(2, 6, ispisi); //8

  23. Callback funkcije function askDatabase(query, callback){..} function getActors(age, height, callback) { var query = {age: age, height: height}; askDatabase(query, callback); return „I don’t know yet”; } var result = getActors(45, 180, function (actors) { console.log(actors); //Nadan, Ivo, ... }); console.log(result); //I don’t know yet

  24. Funkcijski jezici • funkcije : • samostalne • anonimne • mogu se proslijediti kao parametar

  25. Funkcijsko vs objektno programiranje • Objektno – kopiraju se objekti iz realnog svijeta  Java, C# • Funkcijsko – sustav se sastoji od servisa-matematičkih funkcija koje nemaju stanja  Haskell • Što odabrati OVISI O ZADATKU

  26. Demonstracija Meteor http://asc-demo.meteor.com/http://bit.ly/18LrBHr

  27. Learn one – master all

  28. JS je moćan • Zašto bi se koristio samo na frontendu?

  29. NodeJS

  30. NodeJS • Asinkron brz • Event driven  sva logika kao odgovor na vanjske requestove • ima svoj „server” • demo u 30 sekundi

  31. MONGODB

  32. MongoDB • JSON u bazi • nema tablica i oganičenja • nema JOINa • čisti JSON

  33. Mobilne aplikacije • 3 načina razvoja : • nativno (Android, iOS, WP) • frameworci (PhoneGap, Titanium, Xamarin) • hibridna aplikacija (nativni browser)

  34. Hibridne aplikacije

  35. Hibridne aplikacije • JS, HTML, CSS • Cross platform

  36. Web sockets • Browser  backend = Api request • Backend  browser= web socket • Svi novi browseri

  37. Opasnosti

  38. Problemi u kodu • Nema standarda • Nema transakcija • Globalne varijable • Tipiziranje podataka • Teško je analizirati greške

  39. Problemi odabiraNodeJSa / MongoDBa • Uska specijalizacija • Silver bullet za sve probleme • PAŽLJIVO BIRATI TEHNOLOGIJE • Cijepaj sustav

  40. Alternative • NodeJS  GoLang, Grails, ... • MongoDB PostgreSQL, Redis, Neo4J

  41. Sažetak • JavaScript • dominantan jezik u browseru • razne metodologije -> zabavan • puno mogućnosti -> opasan • asinkron -> brz • sveprisutan -> cross platform

  42. Hvala na pažnji!

More Related