63
I.Wojnicki, Tech.Inter. Techniki Internetowe i Multimedialne JavaScript/ECMAScript Igor Wojnicki Katedra Automatyki Akademia Górniczo-Hutnicza w Krakowie 28 maja 2012 $Id: 04javascript.tex,v 1.13 2012/05/28 08:49:38 wojnicki Exp $ Igor Wojnicki (AGH, KA) JavaScript/ECMAScript 28 maja 2012 1 / 63

JavaScript/ECMAScript Igor Wojnickihome.agh.edu.pl/~wojnicki/wiki/_media/pl:tiim:d04... · 2012-05-28 · 1.5 Navigator 6.0/Mozilla, IE 5.5, 6.0 ECMA Script edition 3 1.6 Gecko 1.8

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: JavaScript/ECMAScript Igor Wojnickihome.agh.edu.pl/~wojnicki/wiki/_media/pl:tiim:d04... · 2012-05-28 · 1.5 Navigator 6.0/Mozilla, IE 5.5, 6.0 ECMA Script edition 3 1.6 Gecko 1.8

I.Wojnicki, Tech.Inter.Techniki Internetowe i Multimedialne

JavaScript/ECMAScript

Igor Wojnicki

Katedra AutomatykiAkademia Górniczo-Hutnicza w Krakowie

28 maja 2012

$Id: 04javascript.tex,v 1.13 2012/05/28 08:49:38 wojnicki Exp $

Igor Wojnicki (AGH, KA) JavaScript/ECMAScript 28 maja 2012 1 / 63

Page 2: JavaScript/ECMAScript Igor Wojnickihome.agh.edu.pl/~wojnicki/wiki/_media/pl:tiim:d04... · 2012-05-28 · 1.5 Navigator 6.0/Mozilla, IE 5.5, 6.0 ECMA Script edition 3 1.6 Gecko 1.8

I.Wojnicki, Tech.Inter.

Spis Treści I

1 Wstęp

2 Elementy Języka

3 Sterowanie

4 Funkcje

5 Obiekty

6 HTML

7 Przeglądarka

Igor Wojnicki (AGH, KA) JavaScript/ECMAScript 28 maja 2012 2 / 63

Page 3: JavaScript/ECMAScript Igor Wojnickihome.agh.edu.pl/~wojnicki/wiki/_media/pl:tiim:d04... · 2012-05-28 · 1.5 Navigator 6.0/Mozilla, IE 5.5, 6.0 ECMA Script edition 3 1.6 Gecko 1.8

I.Wojnicki, Tech.Inter.

Wstęp

Spis Treści

1 Wstęp

2 Elementy Języka

3 Sterowanie

4 Funkcje

5 Obiekty

6 HTML

7 Przeglądarka

Igor Wojnicki (AGH, KA) JavaScript/ECMAScript 28 maja 2012 3 / 63

Page 4: JavaScript/ECMAScript Igor Wojnickihome.agh.edu.pl/~wojnicki/wiki/_media/pl:tiim:d04... · 2012-05-28 · 1.5 Navigator 6.0/Mozilla, IE 5.5, 6.0 ECMA Script edition 3 1.6 Gecko 1.8

I.Wojnicki, Tech.Inter.

Wstęp

Typowe zastosowania

mechanizm “Cookie”,

manipulacja przeglądarką (okna, panele),

walidacja formularzy,

manipulacja dokumentem (DOM),

(nie)proste aplikacje.

Igor Wojnicki (AGH, KA) JavaScript/ECMAScript 28 maja 2012 4 / 63

Page 5: JavaScript/ECMAScript Igor Wojnickihome.agh.edu.pl/~wojnicki/wiki/_media/pl:tiim:d04... · 2012-05-28 · 1.5 Navigator 6.0/Mozilla, IE 5.5, 6.0 ECMA Script edition 3 1.6 Gecko 1.8

I.Wojnicki, Tech.Inter.

Wstęp

Wersje

JavaScript vs. JScript vs. ECMAScript (European ComputerManufacturers Association)

wersja przeglądarka standard1.0 Navigator 2.0, IE 3.0 (wczesne)1.1 Navigator 3.0, IE 3.0 (późniejsze)1.2 Navigator 4-4.051.3 Navigator 4.06-4.5, IE 4.0 ECMA Script edition 1/21.4 Netscape Server1.5 Navigator 6.0/Mozilla, IE 5.5, 6.0 ECMA Script edition 31.6 Gecko 1.8 (Firefox 1.5)1.7 Gecko 1.8 (Firefox 2)1.8 Gecko 1.9 (Firefox 3)

Igor Wojnicki (AGH, KA) JavaScript/ECMAScript 28 maja 2012 5 / 63

Page 6: JavaScript/ECMAScript Igor Wojnickihome.agh.edu.pl/~wojnicki/wiki/_media/pl:tiim:d04... · 2012-05-28 · 1.5 Navigator 6.0/Mozilla, IE 5.5, 6.0 ECMA Script edition 3 1.6 Gecko 1.8

I.Wojnicki, Tech.Inter.

Wstęp

Dokumentacja

http://developer.mozilla.org/en/docs/JavaScript

http://www.ecma-international.org/publications/standards/Ecma-262.htm

EchoEcho.com http://www.echoecho.com/javascript.htm.

Igor Wojnicki (AGH, KA) JavaScript/ECMAScript 28 maja 2012 6 / 63

Page 7: JavaScript/ECMAScript Igor Wojnickihome.agh.edu.pl/~wojnicki/wiki/_media/pl:tiim:d04... · 2012-05-28 · 1.5 Navigator 6.0/Mozilla, IE 5.5, 6.0 ECMA Script edition 3 1.6 Gecko 1.8

I.Wojnicki, Tech.Inter.

Elementy Języka

Spis Treści

1 Wstęp

2 Elementy Języka

3 Sterowanie

4 Funkcje

5 Obiekty

6 HTML

7 Przeglądarka

Igor Wojnicki (AGH, KA) JavaScript/ECMAScript 28 maja 2012 7 / 63

Page 8: JavaScript/ECMAScript Igor Wojnickihome.agh.edu.pl/~wojnicki/wiki/_media/pl:tiim:d04... · 2012-05-28 · 1.5 Navigator 6.0/Mozilla, IE 5.5, 6.0 ECMA Script edition 3 1.6 Gecko 1.8

I.Wojnicki, Tech.Inter.

Elementy Języka

Komentarze

// komentarz pojedynczej linii

/* komentarzwieloliniowy dowolnejdługości*/

Igor Wojnicki (AGH, KA) JavaScript/ECMAScript 28 maja 2012 8 / 63

Page 9: JavaScript/ECMAScript Igor Wojnickihome.agh.edu.pl/~wojnicki/wiki/_media/pl:tiim:d04... · 2012-05-28 · 1.5 Navigator 6.0/Mozilla, IE 5.5, 6.0 ECMA Script edition 3 1.6 Gecko 1.8

I.Wojnicki, Tech.Inter.

Elementy Języka

Typy danych

liczba np. 3.1415, -3.1e5, 42, 0x10, 05,

wartość logiczna: true albo false,

łańcuch znaków,np. "Dzień Dobry", ’Do widzenia’,

null, tzw. “nic”,

undefined, wartość niezdefiniowana.

Uwaga:

JavaScript rozróżnia duże i małe litery.

Słaba (dynamiczna) kontrola typów danych (weakly typed).

Konwersja typów automatyczna.

Igor Wojnicki (AGH, KA) JavaScript/ECMAScript 28 maja 2012 9 / 63

Page 10: JavaScript/ECMAScript Igor Wojnickihome.agh.edu.pl/~wojnicki/wiki/_media/pl:tiim:d04... · 2012-05-28 · 1.5 Navigator 6.0/Mozilla, IE 5.5, 6.0 ECMA Script edition 3 1.6 Gecko 1.8

I.Wojnicki, Tech.Inter.

Elementy Języka

Znaki specjalne

znak znaczenie\b Backspace\f Form feed\n New line\r Carriage return\t Tab\’ Apostrof\” Cudzysłów\\ Backslash

Igor Wojnicki (AGH, KA) JavaScript/ECMAScript 28 maja 2012 10 / 63

Page 11: JavaScript/ECMAScript Igor Wojnickihome.agh.edu.pl/~wojnicki/wiki/_media/pl:tiim:d04... · 2012-05-28 · 1.5 Navigator 6.0/Mozilla, IE 5.5, 6.0 ECMA Script edition 3 1.6 Gecko 1.8

I.Wojnicki, Tech.Inter.

Elementy Języka

Znaki specjalne cd.

znak znaczenie\XXX znak o kodzie XXX (ósemkowo)\xXX znak o kodzie XX (szesnastkowo)\uXXXX znak o kodzie XXXX wg. UTF-16/UCS-2

Igor Wojnicki (AGH, KA) JavaScript/ECMAScript 28 maja 2012 11 / 63

Page 12: JavaScript/ECMAScript Igor Wojnickihome.agh.edu.pl/~wojnicki/wiki/_media/pl:tiim:d04... · 2012-05-28 · 1.5 Navigator 6.0/Mozilla, IE 5.5, 6.0 ECMA Script edition 3 1.6 Gecko 1.8

I.Wojnicki, Tech.Inter.

Elementy Języka

Operatory porównujące

operator znaczenie== równe!= różne=== równe, ten sam typ!== różne, ten sam typ> większe>= większe lub równe< mniejsze<= mniejsze lub równe

Igor Wojnicki (AGH, KA) JavaScript/ECMAScript 28 maja 2012 12 / 63

Page 13: JavaScript/ECMAScript Igor Wojnickihome.agh.edu.pl/~wojnicki/wiki/_media/pl:tiim:d04... · 2012-05-28 · 1.5 Navigator 6.0/Mozilla, IE 5.5, 6.0 ECMA Script edition 3 1.6 Gecko 1.8

I.Wojnicki, Tech.Inter.

Elementy Języka

Operatory arytmetyczne

operator znaczenie+ - * /% Modulo (reszta z dzielenia)++ inkrementacja-- dekrementacja- negacja

Igor Wojnicki (AGH, KA) JavaScript/ECMAScript 28 maja 2012 13 / 63

Page 14: JavaScript/ECMAScript Igor Wojnickihome.agh.edu.pl/~wojnicki/wiki/_media/pl:tiim:d04... · 2012-05-28 · 1.5 Navigator 6.0/Mozilla, IE 5.5, 6.0 ECMA Script edition 3 1.6 Gecko 1.8

I.Wojnicki, Tech.Inter.

Elementy Języka

Operatory logiczne

operator znaczenieex1 && ex2 logiczne ’i’; jest równe ex1 gdy false, jest równe ex2

gdy trueex1 || ex2 logiczne ’lub’; jest równe ex1 gdy true, jest równe

ex2 gdy false! przeczenie

Igor Wojnicki (AGH, KA) JavaScript/ECMAScript 28 maja 2012 14 / 63

Page 15: JavaScript/ECMAScript Igor Wojnickihome.agh.edu.pl/~wojnicki/wiki/_media/pl:tiim:d04... · 2012-05-28 · 1.5 Navigator 6.0/Mozilla, IE 5.5, 6.0 ECMA Script edition 3 1.6 Gecko 1.8

I.Wojnicki, Tech.Inter.

Elementy Języka

Operatory bitowe

operator znaczenie& AND| OR^ XOR~ negacja<< w lewo>> w prawo

Igor Wojnicki (AGH, KA) JavaScript/ECMAScript 28 maja 2012 15 / 63

Page 16: JavaScript/ECMAScript Igor Wojnickihome.agh.edu.pl/~wojnicki/wiki/_media/pl:tiim:d04... · 2012-05-28 · 1.5 Navigator 6.0/Mozilla, IE 5.5, 6.0 ECMA Script edition 3 1.6 Gecko 1.8

I.Wojnicki, Tech.Inter.

Elementy Języka

Operatory specjalne

+ – łączenie łańcuchów znaków,

delete – usuwanie obiektu, własności obiektu, bądź elementu tablicy,

new – tworzenie obiektu,

this – słowo kluczowe umożliwiające odwołanie się do obiektuwywołującego metodę,

typeof – typ obiektu (boolean, string, number, object,undefined (dla skasowanego przy użyciu delete))

void – oblicza wyrażenie z zaniedbaniem wartości,

wsparcie dla wyrażeń regularnych.

Igor Wojnicki (AGH, KA) JavaScript/ECMAScript 28 maja 2012 16 / 63

Page 17: JavaScript/ECMAScript Igor Wojnickihome.agh.edu.pl/~wojnicki/wiki/_media/pl:tiim:d04... · 2012-05-28 · 1.5 Navigator 6.0/Mozilla, IE 5.5, 6.0 ECMA Script edition 3 1.6 Gecko 1.8

I.Wojnicki, Tech.Inter.

Sterowanie

Spis Treści

1 Wstęp

2 Elementy Języka

3 Sterowanie

4 Funkcje

5 Obiekty

6 HTML

7 Przeglądarka

Igor Wojnicki (AGH, KA) JavaScript/ECMAScript 28 maja 2012 17 / 63

Page 18: JavaScript/ECMAScript Igor Wojnickihome.agh.edu.pl/~wojnicki/wiki/_media/pl:tiim:d04... · 2012-05-28 · 1.5 Navigator 6.0/Mozilla, IE 5.5, 6.0 ECMA Script edition 3 1.6 Gecko 1.8

I.Wojnicki, Tech.Inter.

Sterowanie

Instrukcje sterujące

if (warunek) {...}else {...}

switch(wyrażenie){case wartość1 :...break;case wartość2 :...break;...default :...

}

Igor Wojnicki (AGH, KA) JavaScript/ECMAScript 28 maja 2012 18 / 63

Page 19: JavaScript/ECMAScript Igor Wojnickihome.agh.edu.pl/~wojnicki/wiki/_media/pl:tiim:d04... · 2012-05-28 · 1.5 Navigator 6.0/Mozilla, IE 5.5, 6.0 ECMA Script edition 3 1.6 Gecko 1.8

I.Wojnicki, Tech.Inter.

Sterowanie

Pętle

for (wyr_pocz; warunek; wyr_inkrement){...}

do {...} while(wyrażenie)

while (wyrażenie) {...}

Igor Wojnicki (AGH, KA) JavaScript/ECMAScript 28 maja 2012 19 / 63

Page 20: JavaScript/ECMAScript Igor Wojnickihome.agh.edu.pl/~wojnicki/wiki/_media/pl:tiim:d04... · 2012-05-28 · 1.5 Navigator 6.0/Mozilla, IE 5.5, 6.0 ECMA Script edition 3 1.6 Gecko 1.8

I.Wojnicki, Tech.Inter.

Sterowanie

Kontrola pętli

breakprzerywa działanie pętli,

continueprzerwanie bieżącego i wykonanie następnego kroku pętli.

Igor Wojnicki (AGH, KA) JavaScript/ECMAScript 28 maja 2012 20 / 63

Page 21: JavaScript/ECMAScript Igor Wojnickihome.agh.edu.pl/~wojnicki/wiki/_media/pl:tiim:d04... · 2012-05-28 · 1.5 Navigator 6.0/Mozilla, IE 5.5, 6.0 ECMA Script edition 3 1.6 Gecko 1.8

I.Wojnicki, Tech.Inter.

Sterowanie

Operacje na obiektach

for (zmienna in obiekt-albo-tablica) {...}

with (obiekt){...}

Igor Wojnicki (AGH, KA) JavaScript/ECMAScript 28 maja 2012 21 / 63

Page 22: JavaScript/ECMAScript Igor Wojnickihome.agh.edu.pl/~wojnicki/wiki/_media/pl:tiim:d04... · 2012-05-28 · 1.5 Navigator 6.0/Mozilla, IE 5.5, 6.0 ECMA Script edition 3 1.6 Gecko 1.8

I.Wojnicki, Tech.Inter.

Funkcje

Spis Treści

1 Wstęp

2 Elementy Języka

3 Sterowanie

4 Funkcje

5 Obiekty

6 HTML

7 Przeglądarka

Igor Wojnicki (AGH, KA) JavaScript/ECMAScript 28 maja 2012 22 / 63

Page 23: JavaScript/ECMAScript Igor Wojnickihome.agh.edu.pl/~wojnicki/wiki/_media/pl:tiim:d04... · 2012-05-28 · 1.5 Navigator 6.0/Mozilla, IE 5.5, 6.0 ECMA Script edition 3 1.6 Gecko 1.8

I.Wojnicki, Tech.Inter.

Funkcje

Funkcje

definicja:

function nazwa(arg1, arg2,... argn){return wartość;}

Argumenty funkcji przekazywane są niejawnie z wykorzystaniemobiektu arguments: arguments[3], arguments.lengthIlość argumentów nie jest sprawdzana.

wywołanie:

zmienna=mojaFunkcja(argument)

argumenty przekazywane przez wartość, z wyjątkiem obiektów, któresą przekazywane jako referencje.

Igor Wojnicki (AGH, KA) JavaScript/ECMAScript 28 maja 2012 23 / 63

Page 24: JavaScript/ECMAScript Igor Wojnickihome.agh.edu.pl/~wojnicki/wiki/_media/pl:tiim:d04... · 2012-05-28 · 1.5 Navigator 6.0/Mozilla, IE 5.5, 6.0 ECMA Script edition 3 1.6 Gecko 1.8

I.Wojnicki, Tech.Inter.

Funkcje

Predefiniowane funkcje

eval(łańcuch)

parseInt(łańcuch)

parseFloat(łańcuch)

isNaN(wartość)

Igor Wojnicki (AGH, KA) JavaScript/ECMAScript 28 maja 2012 24 / 63

Page 25: JavaScript/ECMAScript Igor Wojnickihome.agh.edu.pl/~wojnicki/wiki/_media/pl:tiim:d04... · 2012-05-28 · 1.5 Navigator 6.0/Mozilla, IE 5.5, 6.0 ECMA Script edition 3 1.6 Gecko 1.8

I.Wojnicki, Tech.Inter.

Obiekty

Spis Treści

1 Wstęp

2 Elementy Języka

3 Sterowanie

4 Funkcje

5 Obiekty

6 HTML

7 Przeglądarka

Igor Wojnicki (AGH, KA) JavaScript/ECMAScript 28 maja 2012 25 / 63

Page 26: JavaScript/ECMAScript Igor Wojnickihome.agh.edu.pl/~wojnicki/wiki/_media/pl:tiim:d04... · 2012-05-28 · 1.5 Navigator 6.0/Mozilla, IE 5.5, 6.0 ECMA Script edition 3 1.6 Gecko 1.8

I.Wojnicki, Tech.Inter.

Obiekty

Obiekty - wstęp

Obiekt jest abstrakcyjnym konstruktem posiadającym własności, któresą obiektami bądź zmiennymi.

Odwołanie się do własności obiektu:nazwaObiektu.nazwaWłasnościalbonazwaObiektu[’’nazwaWłasności’’]

Należy zachować konwencje odwoływania się do własności obiektu!

Igor Wojnicki (AGH, KA) JavaScript/ECMAScript 28 maja 2012 26 / 63

Page 27: JavaScript/ECMAScript Igor Wojnickihome.agh.edu.pl/~wojnicki/wiki/_media/pl:tiim:d04... · 2012-05-28 · 1.5 Navigator 6.0/Mozilla, IE 5.5, 6.0 ECMA Script edition 3 1.6 Gecko 1.8

I.Wojnicki, Tech.Inter.

Obiekty

Predefiniowane typy obiektów

Array

Boolean

Date

Math

Number

String

Function – do dynamicznego tworzenia funkcji:new Function(argumenty,ciało)

Igor Wojnicki (AGH, KA) JavaScript/ECMAScript 28 maja 2012 27 / 63

Page 28: JavaScript/ECMAScript Igor Wojnickihome.agh.edu.pl/~wojnicki/wiki/_media/pl:tiim:d04... · 2012-05-28 · 1.5 Navigator 6.0/Mozilla, IE 5.5, 6.0 ECMA Script edition 3 1.6 Gecko 1.8

I.Wojnicki, Tech.Inter.

Obiekty

Obiekt typu Array

tworzenie obiektumojaTablica0 = new Array(ileElementów);mojaTablica1 = new Array(e1, e2 ... en);mojaTablica = ["1element","2element"];

odwołania do elementów

element = mojaTablica[0];

dodawanie elementów

mojaTablica[3]="czwarty";

Igor Wojnicki (AGH, KA) JavaScript/ECMAScript 28 maja 2012 28 / 63

Page 29: JavaScript/ECMAScript Igor Wojnickihome.agh.edu.pl/~wojnicki/wiki/_media/pl:tiim:d04... · 2012-05-28 · 1.5 Navigator 6.0/Mozilla, IE 5.5, 6.0 ECMA Script edition 3 1.6 Gecko 1.8

I.Wojnicki, Tech.Inter.

Obiekty

Metody i własności Array

length rozmiar tablicy,

concat(tab1, tab2 ...) łączy tablice, tworzy nowy obiekt

join(separator) łączy elementy w łańcuch znaków, domyślnyseparator: ’,’

pop() usuwa ostatni element

push(elem1, elem2 ...) dodaje elementy

sort(fporównująca) sortuje tablice, funkcja porównująca w postaci:funkcja(a,b); zwraca -1 gdy a<b, 0 gdy a==b oraz 1 gdy a>b.

Igor Wojnicki (AGH, KA) JavaScript/ECMAScript 28 maja 2012 29 / 63

Page 30: JavaScript/ECMAScript Igor Wojnickihome.agh.edu.pl/~wojnicki/wiki/_media/pl:tiim:d04... · 2012-05-28 · 1.5 Navigator 6.0/Mozilla, IE 5.5, 6.0 ECMA Script edition 3 1.6 Gecko 1.8

I.Wojnicki, Tech.Inter.

Obiekty

Tworzenie własnych obiektów

konstruktorfunction samochod(marka, model, rok) {this.marka=marka;this.model=model;this.rok=rok; }

tworzenie obiektumojSamochod=new samochod("Ford", "Crown Victoria", 2000);objectName = {property_1:value_1, property_2:value_2,

..., property_n:value_n};

własności typu obiektu (klasy)samochod.prototype.kolor=null;mojSamochod.kolor="bialy";

usuwanie obiektudelete mojSamochod;delete mojSamochod.rok;

Igor Wojnicki (AGH, KA) JavaScript/ECMAScript 28 maja 2012 30 / 63

Page 31: JavaScript/ECMAScript Igor Wojnickihome.agh.edu.pl/~wojnicki/wiki/_media/pl:tiim:d04... · 2012-05-28 · 1.5 Navigator 6.0/Mozilla, IE 5.5, 6.0 ECMA Script edition 3 1.6 Gecko 1.8

I.Wojnicki, Tech.Inter.

Obiekty

Tworzenie własnych obiektów cd.

przyporządkowanie metodobiekt.nazwaMetody = nazwaFunkcjiobiekt.nazwaMetody = function(param1,param2) {...}

wywołanie metodyobiekt.nazwaMetody(arg1, arg2 ...);

przykładfunction wyswietlSam(){var napis = " Piękny " + this.marka " " + this.model;wypisz(napis);}function samochod(marka, model, rok){this.marka=marka;this.model=model;this.rok=rok;this.wyswietlSam = wyswietlSam;}

Igor Wojnicki (AGH, KA) JavaScript/ECMAScript 28 maja 2012 31 / 63

Page 32: JavaScript/ECMAScript Igor Wojnickihome.agh.edu.pl/~wojnicki/wiki/_media/pl:tiim:d04... · 2012-05-28 · 1.5 Navigator 6.0/Mozilla, IE 5.5, 6.0 ECMA Script edition 3 1.6 Gecko 1.8

I.Wojnicki, Tech.Inter.

Obiekty

Obiekt typu Math

własność opisPI liczba πE podstawa log. naturalnego

metoda opisabs(x) wartość bezwzględnasin(x),cos(x),tan(x) f.trygonometrycznesqrt(x) pierwiastek kwadratowypow(x,y) xy

round(x) zaokrąglenieceil(x) zaokrąglenie w góręfloor(x) zaokrąglenie w dółrandom liczba pseudolosowa ∈ [0, 1]

Nie należy tworzyć obiektów typu Math!

Igor Wojnicki (AGH, KA) JavaScript/ECMAScript 28 maja 2012 32 / 63

Page 33: JavaScript/ECMAScript Igor Wojnickihome.agh.edu.pl/~wojnicki/wiki/_media/pl:tiim:d04... · 2012-05-28 · 1.5 Navigator 6.0/Mozilla, IE 5.5, 6.0 ECMA Script edition 3 1.6 Gecko 1.8

I.Wojnicki, Tech.Inter.

Obiekty

Obiekt typu String

Należy rozróżnić pomiędzy obiektem typu String a zmienną typu“łańcuch znaków”

s1 = "mój łańcuch znaków";s2 = new String("mój obiekt String");

W praktyce można używać metod oraz własności obiektu typu String nazmiennej typu “łańcuch znaków”. W takim przypadku JavaScript dokonatymczasowej konwersji łańcucha znaków do obiektu typu String.

Igor Wojnicki (AGH, KA) JavaScript/ECMAScript 28 maja 2012 33 / 63

Page 34: JavaScript/ECMAScript Igor Wojnickihome.agh.edu.pl/~wojnicki/wiki/_media/pl:tiim:d04... · 2012-05-28 · 1.5 Navigator 6.0/Mozilla, IE 5.5, 6.0 ECMA Script edition 3 1.6 Gecko 1.8

I.Wojnicki, Tech.Inter.

Obiekty

Hierarchia typów obiektów

Hierarchię typów obiektów można zbudować wskazując rodzica:typPotomek.prototype=new typRodzic;na przykład:

Etat

Pracownik

Inzynier

function Etat(nazwa,wydzial){this.nazwa=nazwa||"";this.wydzial=wydzial||"główny"}function Pracownik(nazwa,wydzial,projekty){this.rodzic=Etat;this.rodzic(nazwa,wydzial);this.projekty=projekty||[];}Pracownik.prototype=new Etat;function Inzynier(nazwa,projekty,maszyna){this.rodzic=Pracownik;this.rodzic(nazwa,"inżynierii",projekty);this.maszyna=maszyna||"";}Inzynier.prototype=new Pracownik;

Igor Wojnicki (AGH, KA) JavaScript/ECMAScript 28 maja 2012 34 / 63

Page 35: JavaScript/ECMAScript Igor Wojnickihome.agh.edu.pl/~wojnicki/wiki/_media/pl:tiim:d04... · 2012-05-28 · 1.5 Navigator 6.0/Mozilla, IE 5.5, 6.0 ECMA Script edition 3 1.6 Gecko 1.8

I.Wojnicki, Tech.Inter.

HTML

Spis Treści

1 Wstęp

2 Elementy Języka

3 Sterowanie

4 Funkcje

5 Obiekty

6 HTML

7 Przeglądarka

Igor Wojnicki (AGH, KA) JavaScript/ECMAScript 28 maja 2012 35 / 63

Page 36: JavaScript/ECMAScript Igor Wojnickihome.agh.edu.pl/~wojnicki/wiki/_media/pl:tiim:d04... · 2012-05-28 · 1.5 Navigator 6.0/Mozilla, IE 5.5, 6.0 ECMA Script edition 3 1.6 Gecko 1.8

I.Wojnicki, Tech.Inter.

HTML

Osadzanie JavaScript w HTML

Historycznie - niezgodne z HTML 4.01 Strict!!!Znacznik końca elementu jest wymagany.

<html ...><head><script language="Javascript1.3"><!-- aby ukryć kod JavaScript....// --></script></head><body><script language="Javascript1.3"><!-- aby ukryć kod JavaScript....// --></script></body></html>

Igor Wojnicki (AGH, KA) JavaScript/ECMAScript 28 maja 2012 36 / 63

Page 37: JavaScript/ECMAScript Igor Wojnickihome.agh.edu.pl/~wojnicki/wiki/_media/pl:tiim:d04... · 2012-05-28 · 1.5 Navigator 6.0/Mozilla, IE 5.5, 6.0 ECMA Script edition 3 1.6 Gecko 1.8

I.Wojnicki, Tech.Inter.

HTML

Osadzanie JavaScript w HTML

<meta http-equiv="Content-Script-Type"content="text/javascript" />

<script type="text/javascript"><!-- aby ukryć kod JavaScript

/* kod JavaScript */

// --></script>

Igor Wojnicki (AGH, KA) JavaScript/ECMAScript 28 maja 2012 37 / 63

Page 38: JavaScript/ECMAScript Igor Wojnickihome.agh.edu.pl/~wojnicki/wiki/_media/pl:tiim:d04... · 2012-05-28 · 1.5 Navigator 6.0/Mozilla, IE 5.5, 6.0 ECMA Script edition 3 1.6 Gecko 1.8

I.Wojnicki, Tech.Inter.

HTML

Osadzanie JavaScript w HTML cd.

podawanie URL pliku z kodem<script src="mojeskrypty.js" > </script>

dla przeglądarek bez JavaScript<noscript> ... </noscript>

Igor Wojnicki (AGH, KA) JavaScript/ECMAScript 28 maja 2012 38 / 63

Page 39: JavaScript/ECMAScript Igor Wojnickihome.agh.edu.pl/~wojnicki/wiki/_media/pl:tiim:d04... · 2012-05-28 · 1.5 Navigator 6.0/Mozilla, IE 5.5, 6.0 ECMA Script edition 3 1.6 Gecko 1.8

I.Wojnicki, Tech.Inter.

Przeglądarka

Spis Treści

1 Wstęp

2 Elementy Języka

3 Sterowanie

4 Funkcje

5 Obiekty

6 HTML

7 Przeglądarka

Igor Wojnicki (AGH, KA) JavaScript/ECMAScript 28 maja 2012 39 / 63

Page 40: JavaScript/ECMAScript Igor Wojnickihome.agh.edu.pl/~wojnicki/wiki/_media/pl:tiim:d04... · 2012-05-28 · 1.5 Navigator 6.0/Mozilla, IE 5.5, 6.0 ECMA Script edition 3 1.6 Gecko 1.8

I.Wojnicki, Tech.Inter.

Przeglądarka

Obsługa zdarzeń

ogólna postać

<znacznik zdarzenie=" kod JavaScript ">

przykład

<input type="button"value="oblicz"onClick="oblicz(this.form)">

this dotyczy obiektu, który wygenerował zdarzenie, w tym przypadkujest to button; this.form dotyczy formularza, w którymumieszczony jest przycisk.

Igor Wojnicki (AGH, KA) JavaScript/ECMAScript 28 maja 2012 40 / 63

Page 41: JavaScript/ECMAScript Igor Wojnickihome.agh.edu.pl/~wojnicki/wiki/_media/pl:tiim:d04... · 2012-05-28 · 1.5 Navigator 6.0/Mozilla, IE 5.5, 6.0 ECMA Script edition 3 1.6 Gecko 1.8

I.Wojnicki, Tech.Inter.

Przeglądarka

Zdarzenia

Dla wersji JavaScript 1.1 i wcześniejszych nazwy zdarzeń muszą być pisanemałymi literami.

zdarzenie opisonClick naciśnięcie przycisku będącego elementem formularzaonChange zmiana wartości elementu (np. pola tekstowego)onKeyPress naciśnięcie klawiszaonMouseOut kursor myszy opuszcza obiektonMouseOver kursor myszy nad obiektemonReset kasowanie zawartości formularzaonSubmit wysyłanie formularza

Igor Wojnicki (AGH, KA) JavaScript/ECMAScript 28 maja 2012 41 / 63

Page 42: JavaScript/ECMAScript Igor Wojnickihome.agh.edu.pl/~wojnicki/wiki/_media/pl:tiim:d04... · 2012-05-28 · 1.5 Navigator 6.0/Mozilla, IE 5.5, 6.0 ECMA Script edition 3 1.6 Gecko 1.8

I.Wojnicki, Tech.Inter.

Przeglądarka

Obsługa zdarzeń

<h1 onclick="alert(’ooooo co tam?’)">....</h1>

Lepiej użyć void (inaczej różne zachowania różnych przeglądarek):

<a href="javascript:void(f())">....</a>

Jeżeli g() zwróci true, przeglądarka przejdzie pod wskazany adres(podobnie onSubmit, onReset).

<a href="http://w.d.r/" onclick="return g()">....</a>

Najpierw wykonywana jest funkcja zdarzenia:

<a href="javascript:void(f())" onclick="g()">....</a>

Igor Wojnicki (AGH, KA) JavaScript/ECMAScript 28 maja 2012 42 / 63

Page 43: JavaScript/ECMAScript Igor Wojnickihome.agh.edu.pl/~wojnicki/wiki/_media/pl:tiim:d04... · 2012-05-28 · 1.5 Navigator 6.0/Mozilla, IE 5.5, 6.0 ECMA Script edition 3 1.6 Gecko 1.8

I.Wojnicki, Tech.Inter.

Przeglądarka

DOM: Document Object Model

Igor Wojnicki (AGH, KA) JavaScript/ECMAScript 28 maja 2012 43 / 63

Page 44: JavaScript/ECMAScript Igor Wojnickihome.agh.edu.pl/~wojnicki/wiki/_media/pl:tiim:d04... · 2012-05-28 · 1.5 Navigator 6.0/Mozilla, IE 5.5, 6.0 ECMA Script edition 3 1.6 Gecko 1.8

I.Wojnicki, Tech.Inter.

Przeglądarka

DOM cd.

Każdy dokument (x)html zawiera następujące obiekty:

navigator: posiada własności zawierające nazwę i wersjęprzeglądarki, zainstalowane Plug-Ins, oraz MIME

window: okno

document: własności związane z dokumentem: tytuł, kolor, linki,formularze, document.write("Hello World!")

location: własności związane z aktualnym URI,

history: historia

Igor Wojnicki (AGH, KA) JavaScript/ECMAScript 28 maja 2012 44 / 63

Page 45: JavaScript/ECMAScript Igor Wojnickihome.agh.edu.pl/~wojnicki/wiki/_media/pl:tiim:d04... · 2012-05-28 · 1.5 Navigator 6.0/Mozilla, IE 5.5, 6.0 ECMA Script edition 3 1.6 Gecko 1.8

I.Wojnicki, Tech.Inter.

Przeglądarka

DOM cd.

Każdy obiekt HTML posiada swój odpowiednik DOM dostępny z poziomuJavaScript np.

document.mojform.tekst1.value

jest referencją do wartości pola tekstowego tekst1 w formularzu mojform(wartość atr. name) aktualnego dokumentu.

document.forms[0].elements[0].valuedocument.forms[0].action="...."document.forms[0].submit()document.forms[0].reset()

Igor Wojnicki (AGH, KA) JavaScript/ECMAScript 28 maja 2012 45 / 63

Page 46: JavaScript/ECMAScript Igor Wojnickihome.agh.edu.pl/~wojnicki/wiki/_media/pl:tiim:d04... · 2012-05-28 · 1.5 Navigator 6.0/Mozilla, IE 5.5, 6.0 ECMA Script edition 3 1.6 Gecko 1.8

I.Wojnicki, Tech.Inter.

Przeglądarka

Obiekty: window i frame

open(), close(): otwieranie i zamykanie okien przeglądarki,

alert() wyświetla komunikat w oknie dialogowym,

confirm() okno dialogowe Akceptuj/Porzuć,

prompt() okno dialogowe z polem tekstowym,

scrollTo() przewija zawartość okna,

setTimeout() wywołuje funkcję po upłynięciu zadanego czasu,

location aktualny URL,

status komunikat w pasku komunikatów.

Igor Wojnicki (AGH, KA) JavaScript/ECMAScript 28 maja 2012 46 / 63

Page 47: JavaScript/ECMAScript Igor Wojnickihome.agh.edu.pl/~wojnicki/wiki/_media/pl:tiim:d04... · 2012-05-28 · 1.5 Navigator 6.0/Mozilla, IE 5.5, 6.0 ECMA Script edition 3 1.6 Gecko 1.8

I.Wojnicki, Tech.Inter.

Przeglądarka

Obiekt window cd.

otwieranie nowego okna,okno=window.open(url,nazwa,opcje);przykładowo:mojeOkno=window.open(’’http://www.agh.edu.pl’’)

zamykanie bieżącego okna,window.close() albo self.close(),

zamykanie wskazanego okna,mojeOkno.close().

Igor Wojnicki (AGH, KA) JavaScript/ECMAScript 28 maja 2012 47 / 63

Page 48: JavaScript/ECMAScript Igor Wojnickihome.agh.edu.pl/~wojnicki/wiki/_media/pl:tiim:d04... · 2012-05-28 · 1.5 Navigator 6.0/Mozilla, IE 5.5, 6.0 ECMA Script edition 3 1.6 Gecko 1.8

I.Wojnicki, Tech.Inter.

Przeglądarka

Obsługa formularzy

<script>function ff(){return ’funkcyjka’;}moja=ff();document.write(moja);function sub(){return confirm(’Potwierdz’);}</script><form name="formul1" onsubmit="return sub()"><input type="text" name="t1"><input type="submit"> </form><form name="formul2"><input type="text" name="t2"><input type="submit" onclick="return sub()"></form><script>document.formul1.t1.value=ff();</script>

Igor Wojnicki (AGH, KA) JavaScript/ECMAScript 28 maja 2012 48 / 63

Page 49: JavaScript/ECMAScript Igor Wojnickihome.agh.edu.pl/~wojnicki/wiki/_media/pl:tiim:d04... · 2012-05-28 · 1.5 Navigator 6.0/Mozilla, IE 5.5, 6.0 ECMA Script edition 3 1.6 Gecko 1.8

I.Wojnicki, Tech.Inter.

Przeglądarka

Spis Treści I

window.onload = createTOC;function createTOC(){// find the nodes to be added to the Page TOCvar tocTargets = new Array()nodes = document.body.childNodesfor (var i = 0; i < nodes.length; i++) {nn = nodes[i].nodeNameif (nn == "H1" || nn == "H2" || nn == "H3") {tocTargets.push(nodes[i])}}tocDiv = document.getElementById(’pageToc’)// Remove toc if none or one headingif (tocTargets.length <= 1) {tocDiv.parentNode.removeChild(tocDiv)return;

Igor Wojnicki (AGH, KA) JavaScript/ECMAScript 28 maja 2012 49 / 63

Page 50: JavaScript/ECMAScript Igor Wojnickihome.agh.edu.pl/~wojnicki/wiki/_media/pl:tiim:d04... · 2012-05-28 · 1.5 Navigator 6.0/Mozilla, IE 5.5, 6.0 ECMA Script edition 3 1.6 Gecko 1.8

I.Wojnicki, Tech.Inter.

Przeglądarka

Spis Treści II

}// Add the toc contentstocDiv = document.createElement(’div’)tocDiv.id = ’pageToc’document.body.insertBefore(tocDiv, document.body.firstChild)tocList = document.createElement(’ul’)tocList.className = "pageToc"tocDiv.appendChild(tocList)// Insert elements into our table of contentsfor (var i = 0; i < tocTargets.length; i++) {tocTarget = tocTargets[i]if (tocTarget.id == ’’) {tocTarget.id = ’pageToc’ + i}newItem = document.createElement(’li’)newItem.className = "pageToc" + tocTarget.nodeNamenewLink = document.createElement(’a’)

Igor Wojnicki (AGH, KA) JavaScript/ECMAScript 28 maja 2012 50 / 63

Page 51: JavaScript/ECMAScript Igor Wojnickihome.agh.edu.pl/~wojnicki/wiki/_media/pl:tiim:d04... · 2012-05-28 · 1.5 Navigator 6.0/Mozilla, IE 5.5, 6.0 ECMA Script edition 3 1.6 Gecko 1.8

I.Wojnicki, Tech.Inter.

Przeglądarka

Spis Treści III

newLink.href = ’#’ + tocTarget.idnewLink.innerHTML = tocTarget.innerHTMLnewItem.appendChild(newLink)tocList.appendChild(newItem)newItem.innerHTML = newItem.innerHTML + ’ ’}}

Igor Wojnicki (AGH, KA) JavaScript/ECMAScript 28 maja 2012 51 / 63

Page 52: JavaScript/ECMAScript Igor Wojnickihome.agh.edu.pl/~wojnicki/wiki/_media/pl:tiim:d04... · 2012-05-28 · 1.5 Navigator 6.0/Mozilla, IE 5.5, 6.0 ECMA Script edition 3 1.6 Gecko 1.8

I.Wojnicki, Tech.Inter.

Przeglądarka

Obsługa formularza I

Wymagane pola formularza: DATA_*Wybrane produkty: PROD_*.submit onClick=SendTestbutton onClick=ClearProd

function SendTest(frm){bad=0;badfields="";for (var i=0; i < frm.elements.length; ++i) {// Get the current fieldform_field = frm.elements[i];// Get the field’s nameform_name = form_field.name;if (form_name.substring(0,4) == "DATA") {sname=form_name.substring(5,form_name.length);if (form_field.value==""){badfields=badfields+"\n"+sname;

Igor Wojnicki (AGH, KA) JavaScript/ECMAScript 28 maja 2012 52 / 63

Page 53: JavaScript/ECMAScript Igor Wojnickihome.agh.edu.pl/~wojnicki/wiki/_media/pl:tiim:d04... · 2012-05-28 · 1.5 Navigator 6.0/Mozilla, IE 5.5, 6.0 ECMA Script edition 3 1.6 Gecko 1.8

I.Wojnicki, Tech.Inter.

Przeglądarka

Obsługa formularza II

bad=1;}

}}if (bad) {alert("Wypełnij pola:\n" + badfields);return false;

}return confirm(’Czy chcesz wysłać zamówienie?’);

}

Igor Wojnicki (AGH, KA) JavaScript/ECMAScript 28 maja 2012 53 / 63

Page 54: JavaScript/ECMAScript Igor Wojnickihome.agh.edu.pl/~wojnicki/wiki/_media/pl:tiim:d04... · 2012-05-28 · 1.5 Navigator 6.0/Mozilla, IE 5.5, 6.0 ECMA Script edition 3 1.6 Gecko 1.8

I.Wojnicki, Tech.Inter.

Przeglądarka

Obsługa formularza III

function ClearProd(frm) {// Run through all the form fieldsfor (var i=0; i < frm.elements.length; ++i) {// Get the current fieldform_field = frm.elements[i];// Get the field’s nameform_name = form_field.name;// Is it a "product" field?if (form_name.substring(0,4) == "PROD") {

form_field.value="";}

}frm.TOTAL.value="";

}

Igor Wojnicki (AGH, KA) JavaScript/ECMAScript 28 maja 2012 54 / 63

Page 55: JavaScript/ECMAScript Igor Wojnickihome.agh.edu.pl/~wojnicki/wiki/_media/pl:tiim:d04... · 2012-05-28 · 1.5 Navigator 6.0/Mozilla, IE 5.5, 6.0 ECMA Script edition 3 1.6 Gecko 1.8

I.Wojnicki, Tech.Inter.

Przeglądarka

Cookies

Dostęp do mechanizmu cookie za pomocą: document.cookie

Mechanizm pozwalający przechowywać informacje po stronieprzeglądarki w postaci:nazwa=wartość;expires=data;domain=domena;path=sciezka

Jeżeli nazwa bądź wartość zawierają średnik, przecinek lub spacjęnależy użyci funkcji escape(lan) do zakodowania nazw iodpowiednio unescape(lan) do odkodowania.

data musi być w formacie GMT, konwersja za pomocą metodytoGMTString() obiektu Date: Thu, 2 Aug 2001 20:47:11 UTC.

Igor Wojnicki (AGH, KA) JavaScript/ECMAScript 28 maja 2012 55 / 63

Page 56: JavaScript/ECMAScript Igor Wojnickihome.agh.edu.pl/~wojnicki/wiki/_media/pl:tiim:d04... · 2012-05-28 · 1.5 Navigator 6.0/Mozilla, IE 5.5, 6.0 ECMA Script edition 3 1.6 Gecko 1.8

I.Wojnicki, Tech.Inter.

Przeglądarka

Firebug

JavaScript DebuggerProfilerEdytor HTML/CSSRozszerzenie Firefox’ahttp://www.getfirebug.com

Igor Wojnicki (AGH, KA) JavaScript/ECMAScript 28 maja 2012 56 / 63

Page 57: JavaScript/ECMAScript Igor Wojnickihome.agh.edu.pl/~wojnicki/wiki/_media/pl:tiim:d04... · 2012-05-28 · 1.5 Navigator 6.0/Mozilla, IE 5.5, 6.0 ECMA Script edition 3 1.6 Gecko 1.8

I.Wojnicki, Tech.Inter.

Przeglądarka

AJAX

AJAX = Asynchronous JavaScript and XML.

Igor Wojnicki (AGH, KA) JavaScript/ECMAScript 28 maja 2012 57 / 63

Page 58: JavaScript/ECMAScript Igor Wojnickihome.agh.edu.pl/~wojnicki/wiki/_media/pl:tiim:d04... · 2012-05-28 · 1.5 Navigator 6.0/Mozilla, IE 5.5, 6.0 ECMA Script edition 3 1.6 Gecko 1.8

I.Wojnicki, Tech.Inter.

Przeglądarka

AJAX, Przykład I

<p>Server time is: <strong id="stime">Please wait...</strong></p><p>Client time is: <strong id="ctime">Please wait...</strong></p><script type="text/javascript">function updateTime() {date = new Date();element = document.getElementById(’ctime’);element.innerHTML = date.getHours() + ’:’ +

date.getMinutes() + ’:’ +date.getSeconds();

window.setTimeout(’updateTime()’, 1000);}

function updateAjax() {xmlhttp = new XMLHttpRequest();xmlhttp.onreadystatechange = function() {if (xmlhttp.readyState==4 && xmlhttp.status==200) {

Igor Wojnicki (AGH, KA) JavaScript/ECMAScript 28 maja 2012 58 / 63

Page 59: JavaScript/ECMAScript Igor Wojnickihome.agh.edu.pl/~wojnicki/wiki/_media/pl:tiim:d04... · 2012-05-28 · 1.5 Navigator 6.0/Mozilla, IE 5.5, 6.0 ECMA Script edition 3 1.6 Gecko 1.8

I.Wojnicki, Tech.Inter.

Przeglądarka

AJAX, Przykład II

document.getElementById("stime").innerHTML =xmlhttp.responseText;

}}xmlhttp.open("GET","date.php",true);xmlhttp.send();window.setTimeout("updateAjax()",1000);}

window.setTimeout("updateTime(); updateAjax();",5000);</script>

Igor Wojnicki (AGH, KA) JavaScript/ECMAScript 28 maja 2012 59 / 63

Page 60: JavaScript/ECMAScript Igor Wojnickihome.agh.edu.pl/~wojnicki/wiki/_media/pl:tiim:d04... · 2012-05-28 · 1.5 Navigator 6.0/Mozilla, IE 5.5, 6.0 ECMA Script edition 3 1.6 Gecko 1.8

I.Wojnicki, Tech.Inter.

Przeglądarka

XMLHttpRequest

open(metoda,url,async) – metoda: GET/ POST; async:true/false

send(string) – opcjonalny łańcuch znaków dla POST

setRequestHeader("Content-type","...");

onreadystatechange – funkcja uruchamiana dla danychasynchronicznych

readyState – stan obiektu

status – status odpowiedzi serwera

responseText – odpowiedź serwera jako tekst

responseXML – odpowiedź serwer jako XML (możliwośćprzetwarzania XML w JavaScript!!!)

Igor Wojnicki (AGH, KA) JavaScript/ECMAScript 28 maja 2012 60 / 63

Page 61: JavaScript/ECMAScript Igor Wojnickihome.agh.edu.pl/~wojnicki/wiki/_media/pl:tiim:d04... · 2012-05-28 · 1.5 Navigator 6.0/Mozilla, IE 5.5, 6.0 ECMA Script edition 3 1.6 Gecko 1.8

I.Wojnicki, Tech.Inter.

Przeglądarka

readyState i status

readyState

0 – unsent

1 – opened

2 – headers received

3 – loading

4 – done

status

jak dla HTTP (200 – OK, etc.)

Igor Wojnicki (AGH, KA) JavaScript/ECMAScript 28 maja 2012 61 / 63

Page 62: JavaScript/ECMAScript Igor Wojnickihome.agh.edu.pl/~wojnicki/wiki/_media/pl:tiim:d04... · 2012-05-28 · 1.5 Navigator 6.0/Mozilla, IE 5.5, 6.0 ECMA Script edition 3 1.6 Gecko 1.8

I.Wojnicki, Tech.Inter.

Przeglądarka

AJAX, podtrzymanie połączenia I

<p>server time is: <strong id="stime">Please wait...</strong>

function updateAjax() {xmlhttp = new XMLHttpRequest();xmlhttp.onreadystatechange = function() {if (xmlhttp.readyState==3 && xmlhttp.status==200) {document.getElementById("stime").innerHTML=xmlhttp.responseText;

}if (xmlhttp.readyState==4) { // server closing conn.xmlhttp.open("GET","date-sleep.php",true);xmlhttp.send();}}xmlhttp.open("GET","date-sleep.php",true); xmlhttp.send();}window.setTimeout("updateAjax();",1000);

Igor Wojnicki (AGH, KA) JavaScript/ECMAScript 28 maja 2012 62 / 63

Page 63: JavaScript/ECMAScript Igor Wojnickihome.agh.edu.pl/~wojnicki/wiki/_media/pl:tiim:d04... · 2012-05-28 · 1.5 Navigator 6.0/Mozilla, IE 5.5, 6.0 ECMA Script edition 3 1.6 Gecko 1.8

I.Wojnicki, Tech.Inter.

Przeglądarka

AJAX, podtrzymanie połączenia II

<?phpfor ($i=0; $i<5; $i++) {echo date("H:i:s ");ob_flush(); flush();sleep(2);}?>

Igor Wojnicki (AGH, KA) JavaScript/ECMAScript 28 maja 2012 63 / 63