Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
OpublikowałGabrysia Drozdowicz Został zmieniony 10 lat temu
1
Jakub Binkowski Visual C# MVP webEFS sp.j.
3
GET i POST
4
Jak przekazać do JavaScriptu listę filmów? Jak zwrócić do serwera posortowaną listę?
5
KLIENTSERWER GET /Default.aspx POST /Default.aspx
6
1. Klient prosi o stronę. 2. Serwer generuje stronę. Dane serializuje do formatu JSON i umieszcza w ukrytym polu formularza. 3. Klient otrzymuje stronę. 4. Skrypt po załadowaniu strony deserializuje dane do postaci obiektowej.
7
Tekst: "Ala ma kota" Tablica: [1,2,3,4] Obiekt złożony: {fullname: "Jan Kowalski", age: 15, pets: [ {species: "dog", name: "Klops"}, {species: "goldfish", name: "Ryba"} ]}
8
1. Klient przed wysłaniem formularza serializuje dane do formatu JSON. Umieszcza je w ukrytym polu. 2. Formularz wysyłany jest na serwer. 3. Serwer deserializuje dane z formatu JSON do postaci obiektowej.
9
Po stronie serwera (ASP.NET): JavaScriptSerializer (Sys.Serialization) Po stronie klienta (JavaScript): JavaScriptSerializer (System.Web.Script.Serialization)
11
Dane początkowe
12
Jak przekazać kontrolce Silverlight listę filmów do odtworzenia?
13
1. Serwer serializuje dane do formatu JSON i umieszcza w ukryty polu formularza. 2. Kontrolka Silverlight otrzymuje w parametrach nazwę pola z danymi. 3. Silverlight odczytuje dane i je deserializuje do postaci obiektowej.
14
Umieszczane wewnątrz tagu : Odczyt w Silverlight w App.xaml: private void Application_Startup( object sender, StartupEventArgs e) { var url = e.InitParams["url"]; }
15
Klasa DataContractJsonSerializer (namespace: System.Runtime.Serialization.Json assembly: System.ServiceModel.Web) Dostęp do elementu HTML: HtmlPage.Document.GetElementById("elementID")
17
AJAX Web Services
18
Jak dodać komentarz, nie przerywając oglądania filmu?
19
KLIENTSERWER GET /Default.aspx POST /Default.aspx AJAX: /Service.svc …
20
Działanie: 1. Z poziomu JavaScript wywołujemy metodę WebServiceu 2. Otrzymujemy dane 3. Wyświetlamy dane na stronie Posługujemy się obiektami (przesyłane jako XML lub JSON) Z kodu JavaScript sprowadza się do wywołania zwykłej metody
21
[WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [ScriptService] public class CatalogService : System.Web.Services.WebService { [WebMethod] public IList FindProducts(string filter) { //logika... }
23
Demo.CatalogService.FindProducts( 'blue', FindProducts_success, FindProducts_error); function FindProducts_success(results) { //pokaż produkty } function FindProducts_error(error) { //poinformuj o błędzie }
24
Metoda WebServiceu zawarta w stronie: [WebMethod] public static string[] GetComments() { return DataRepository.GetComments(); } Konfiguracja ScriptManagera: EnablePageMethods="true" Odwołanie z JavaScript: PageMethods.GetComments( GetComments_Success, GetComments_Error)
26
Sterowanie aplikacji Silverlight z poziomu JavaScriptu
27
Jak z poziomu JavaScript sterować odtwarzaczem?
28
Silverlight może udostępnić następujące elementy klasy: właściwości metody Zdarzenia Udostępnianie obiektu: HtmlPage.RegisterScriptableObject( "mediaPlayer", this);
29
Właściwość: [ScriptableMember] public double Volume { get; set;} Dostęp z JavaScript: var volume = get('silverlightControlHost').Content.mediaPlayer.Volume; get('silverlightControlHost').Content.mediaPlayer.Volume = volume + 0.1;
30
Właściwość: [ScriptableMember] public void Play(string url) {...} Dostęp z JavaScript: get('silverlightControlHost').Content.mediaPlayer.Play("vid.wmv");
31
Zdarzenie: [ScriptableMember] public event EventHandler MediaChanged; (tylko EventHandler i EventHandler ) Podłączanie się: $get('silverlightControlHost').Content.mediaPlayer.MediaChanged = playerMediaChanged; $get('silverlightControlHost').Content.mediaPlayer.addEventListener('MediaChanged', playerMediaChanged);
33
Web Services
34
Chcę móc śledzić ilość odtworzeń filmów…
35
Po stronie serwera – usługa WCF Po stronie klienta – proxy do usługi Tylko wywołania asynchroniczne
36
Tylko basicHttpBinding Odwołania tylko do domeny, z której pobraliśmy aplikację Chyba że…
38
Odwoływanie się do JavaScriptu z poziomu Silverlight
39
Dostajemy aktualną ilość odtworzeń, ale jak ją wyświetlić na stronie?
40
HtmlPage.BrowserInformation Informacje o przeglądarce HtmlPage.Document Dostęp do dokumenty HTML (DOM) HtmlPage.Window Dostęp do okienka przeglądarki HtmlPage.Plugin Element, w którym osadzona jest kontrolka Silverlight.
41
GetProperty SetProperty Invoke InvokeSelf ConvertTo
42
GetElementById QueryString Submit …
43
Alert, Confirm, Prompt Navigate …
45
Powiadomienia on-line z serwera
46
KLIENTSERWER Czy ktoś coś napisał? Nie Czy ktoś coś napisał? Nie Czy ktoś coś napisał? JK: Nigdy nas nie przekonają, że białe jest białe, a czarne jest czarne!
47
KLIENTSERWER Informuj mnie o nowych wiadomościach Bill: 640K ought to be enough for anybody Steve: Developers! Developers!… Close
48
Przekazywanie stanu przy GET i POST Odwołania asynchroniczne Współpraca po stronie klienta JavaScript Silverlight
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.