Head First Ajax

Valutazione media 3,49
( su 93 valutazioni fornite da GoodReads )
 
9780596515782: Head First Ajax

Ajax is no longer an experimental approach to website development, but the key to building browser-based applications that form the cornerstone of Web 2.0. Head First Ajax gives you an up-to-date perspective that lets you see exactly what you can do—and has been done—with Ajax. With it, you get a highly practical, in-depth, and mature view of what is now a mature development approach.

Using the unique and highly effective visual format that has turned Head First titles into runaway bestsellers, this book offers a big picture overview to introduce Ajax, and then explores the use of individual Ajax components—including the JavaScript event model, DOM, XML, JSON, and more—as it progresses. You'll find plenty of sample applications that illustrate the concepts, along with exercises, quizzes, and other interactive features to help you retain what you've learned.

Head First Ajax covers:

  • The JavaScript event model
  • Making Ajax requests with XMLHTTPREQUEST objects
  • The asynchronous application model
  • The Document Object Model (DOM)
  • Manipulating the DOM in JavaScript
  • Controlling the browser with the Browser Object Model
  • XHTML Forms
  • POST Requests
  • XML Syntax and the XML DOM tree
  • XML Requests & Responses
  • JSON -- an alternative to XML
  • Ajax architecture & patterns
  • The Prototype Library

The book also discusses the server-side implications of building Ajax applications, and uses a "black box" approach to server-side components.

Head First Ajax is the ideal guide for experienced web developers comfortable with scripting—particularly those who have completed the exercises in Head First JavaScript—and for experienced programmers in Java, PHP, and C# who want to learn client-side programming.

Le informazioni nella sezione "Riassunto" possono far riferimento a edizioni diverse di questo titolo.

L'autore:

With twenty years experience in the field, Rebecca M. Riordan has earned an international reputation for designing and implementing computer systems that are technically sound, reliable, and effectively meet her clients' needs. Her particular area of expertise is database design and she is a five year Access MVP. Rebecca has also authored several database books and served as a senior technical support engineer for Microsoft's database products. As a Microsoft employee in Australia, Rebecca was the Senior technical support engineer for Microsoft's database products.

Contenuti:

Advance Praise for Head First Ajax; Author of Head First Ajax; How to Use this Book: Intro; Who is this book for?; We know what you’re thinking; We know what your brain is thinking; Metacognition: thinking about thinking; Here’s what WE did; Here’s what YOU can do to bend your brain into submission; Read Me; The technical review team; Acknowledgments; Safari® Books Online; Chapter 1: Using Ajax: Web Apps for a New Generation; 1.1 Web pages: the old-fashioned approach; 1.2 Web pages reinvented; 1.3 So what makes a page “Ajax”?; 1.4 Rob’s Rock ‘n’ Roll Memorabilia; 1.5 Ajax and rock ‘n’ roll in 5 steps; 1.6 Step 1: Modify the XHTML; 1.7 Step 2: Initialize the JavaScript; 1.8 Step 3: Create a request object; 1.9 Step 4: Get the item’s details; 1.10 Let’s write the code for requesting an item’s details; 1.11 Always make sure you have a request object before working with it; 1.12 The request object is just an object; 1.13 Hey, server... will you call me back at displayDetails(), please?; 1.14 Use send() to send your request; 1.15 The server usually returns data to Ajax requests; 1.16 Ajax is server-agnostic; 1.17 Use a callback function to work with data the server returns; 1.18 Get the server’s response from the request object’s responseText property; 1.19 Goodbye traditional web apps...; Chapter 2: Designing Ajax Applications: Thinking Ajaxian; 2.1 Mike’s traditional web site; 2.2 Let’s use Ajax to send registration requests ASYNCHRONOUSLY; 2.3 Update the registration page; 2.4 Set the window.onload event handler... PROGRAMMATICALLY; 2.5 Code in your JavaScript outside of functions runs when the script is read; 2.6 What happens when...; 2.7 And on the server...; 2.8 Some parts of your Ajax designs will be the same... every time; 2.9 createRequest() is always the same; 2.10 Create a request object... on multiple browsers; 2.11 Ajax app design involves both the web page AND the server-side program; 2.12 What we’ve done so far...; 2.13 What we still need to do...; 2.14 The request object connects your code to the web browser; 2.15 You talk to the browser, not the server; 2.16 The browser calls back your function with the server’s response; 2.17 Show the Ajax registration page to Mike...; 2.18 The web form has TWO ways to send requests to the server now; 2.19 Let’s create CSS classes for each state of the processing...; 2.20 ... and change the CSS class with our JavaScript; 2.21 Changes? We don’t need no stinkin’ changes!; 2.22 Only allow registration when it’s appropriate; Chapter 3: Javascript Events: Reacting to your users; 3.1 It all started with a downward-facing dog...; 3.2 Ajax apps are more than the sum of their parts; 3.3 Here’s Marcy’s XHTML...; 3.4 Events are the key to interactivity; 3.5 Connect events on your web page to event handlers in your JavaScript; 3.6 Use the window.onload event to initialize the rest of the interactivity on a web page; 3.7 Change those left-side images to be clickable; 3.8 Use your XHTML’s content and structure; 3.9 Add the code for hideHint(), too; 3.10 Tabs: an optical (and graphical) illusion; 3.11 Use a for... loop to cycle through the images; 3.12 CSS classes are the key (again); 3.13 Ummm... but the tabs aren’t < a >’s !; 3.14 This broke our JavaScript, too, didn’t it?; 3.15 Use a request object to fetch the class details from the server; 3.16 Be careful when you have two functions changing the same part of a web page; 3.17 When you need to change images in your script, think “change CSS classes” instead; 3.18 Links in XHTML are represented by elements; 3.19 We need a function to show an active button and hide a button, too; Chapter 4: Multiple Event Handlers: Two’s company; 4.1 An event can have only one event handler attached to it (or so it seems); 4.2 Event handlers are just properties; 4.3 A property can have only ONE value; 4.4 Assign multiple event handlers with addEventListener(); 4.5 Your objects can have multiple event handlers assigned to a single event in DOM Level 2; 4.6 What’s going on with Internet Explorer?; 4.7 Internet Explorer uses a totally different event model; 4.8 attachEvent() and addEventListener() are functionally equivalent; 4.9 addEventHandler() works for ALL apps, not just Marcy’s yoga page; 4.10 Let’s update initPage() to use our new utility function; 4.11 Use an alert() to troubleshoot; 4.12 So what else could be going wrong?; 4.13 Event handlers in IE are owned by IE’s event framework, NOT the active page object; 4.14 attachEvent() and addEventListener() supply another argument to our handlers; 4.15 We need to name the Event argument, so our handlers can work with it; 4.16 You say target tomato, I say srcElement tomato...; 4.17 So how do we actually GET the object that triggered the event?; Chapter 5: Asynchronous Applications: It’s like renewing your driver’s license; 5.1 What does asynchronous really mean?; 5.2 You’ve been building asynchronous apps all along; 5.3 But sometimes you barely even notice...; 5.4 Speaking of more server-side processing...; 5.5 (More) Asynchrony in 3 easy steps; 5.6 We need two password fields and a for the cover images; 5.7 If you need new behavior, you probably need a new event handler function; 5.8 With ONE request object, you can safely send and receive ONE asynchronous request; 5.9 Asynchronous requests don’t wait on anything... including themselves!; 5.10 If you’re making TWO separate requests, use TWO separate request objects; 5.11 Asynchrony means you can’t count on the ORDERING of your requests and responses; 5.12 A monitor function MONITORS your application... from OUTSIDE the action; 5.13 You call a monitor function when action MIGHT need to be taken; 5.14 Status variables let monitors know what’s going on; 5.15 And now for our last trick...; 5.16 Synchronous requests block ALL YOUR CODE from doing anything; 5.17 Use setInterval() to let JavaScript run your process, instead of your own code; Chapter 6: The Document Object Model: Web Page Forestry; 6.1 You can change the CONTENT of a page...; 6.2 ... or you can change the STRUCTURE of a page; 6.3 Browsers use the Document Object Model to represent your page; 6.4 Here’s the XHTML that you write...; 6.5 ... and here’s what your browser sees; 6.6 Your page is a set of related objects; 6.7 Let’s use the DOM to build a dynamic app; 6.8 You start with XHTML...; 6.9 appendChild() adds a new child to a node; 6.10 You can locate elements by name or by id; 6.11 Can I move the clicked tile?; 6.12 You can move around a DOM tree using FAMILY relationships; 6.13 A DOM tree has nodes for EVERYTHING in your web page; 6.14 The nodeName of a text node is “#text”; 6.15 Did I win? Did I win?; 6.16 But seriously... did I win?; Chapter 7: Manipulating the DOM: My wish is your command; 7.1 Webville Puzzles... the franchise; 7.2 Woggle doesn’t use table cells for the tiles; 7.3 The tiles in the XHTML are CSS-positioned; 7.4 “We don’t want TOTALLY random letters...”; 7.5 Our presentation is ALL in our CSS; 7.6 We need a new event handler for handling tile clicks; 7.7 Start building the event handler for each tile click; 7.8 We can assign an event handler in our randomizeTiles() function; 7.9 Property values are just strings in JavaScript; 7.10 We need to add content AND structure to the “currentWord” ; 7.11 Use the DOM to change a page’s structure; 7.12 Use createElement() to create a DOM element; 7.13 You have to TELL the browser where to put any new DOM nodes you create; 7.14 We need to disable each tile. That means changing the tile’s CSS class...; 7.15 ... AND turning OFF the addLetter() event handler; 7.16 Submitting a word is just (another) request; 7.17 Our JavaScript doesn’t care how the server figures out its response to our request; 7.18 Usability check: WHEN can submitWord() get called?; Chapter 8: Frameworks and Toolkits: Trust No One; 8.1 So what frameworks ARE there?; 8.2 Every framework uses a different syntax to do things; 8.3 The syntax may change... but the JavaScript is still the same; 8.4 To framework or not to framework?; 8.5 The choice is up to you...; Chapter 9: XML Requests and Responses: More Than Words Can Say; 9.1 Classic rock gets a 21st century makeover; 9.2 How should a server send a MULTI-valued response?; 9.3 InnerHTML is only simple for the CLIENT side of a web app; 9.4 You use the DOM to work with XML, just like you did with XHTML; 9.5 XML is self-describing; Chapter 10: JSON: SON of JavaScript; 10.1 JSON can be text AND an object; 10.2 JSON data can be treated as a JavaScript object; 10.3 So how do we get JSON data from the server’s response?; 10.4 JavaScript can evaluate textual data; 10.5 Use eval() to manually evaluate text; 10.6 Evaluating JSON data returns an object representation of that data; 10.7 JavaScript objects are ALREADY dynamic... because they’re not COMPILED objects; 10.8 You can access an object’s members... and then get an object’s values with those members; 10.9 You need to PARSE the server’s response, not just EVALUATE it; 10.10 So which is the better data format?; Chapter 11: Forms and Validation: Say what you meant to say; 11.1 Marcy’s Yoga for Programmers... a booming new enterprise; 11.2 Validation should work from the web page BACK to the server; 11.3 You can validate the FORMAT of data, and you can validate the CONTENT of data; 11.4 We need to validate the FORMAT of the data from Marcy’s enrollment page; 11.5 Don’t Repeat Yourself: DRY; 11.6 Let’s build some more event handlers; 11.7 RETURN of SON of JavaScript; 11.8 The value of a property can be another JavaScript object; 11.9 Let’s warn Marcy’s customers when there’s a problem with their entry; 11.10 If you don’t warn(), you have to unwarn(); 11.11 IF there’s a warning, get rid of it; 11.12 Duplicate data is a SERVER problem; 11.13 So we’re done now, right?; Chapter 12: Post Requests: Paranoia: It’s your friend; 12.1 There’s a villain in the movies; 12.2 GET requests send request parameters across the network as clear text; 12.3 POST requests DON’T send clear text; 12.4 The data in a POST request is ENCODED until it reaches the server; 12.5 send() your request data in a POST request; 12.6 Always check to make sure your request data was RECEIVED.; 12.7 Why didn’t the POST request work?; 12.8 The server unencodes POST data; 12.9 We need to TELL the server what we’re sending; 12.10 Set a request header using setRequestHeader() on your request object; Leftovers: The Top Five Topics (we didn’t cover); #1 Inspecting the DOM; Inspecting the DOM in Internet Explorer; Inspecting the DOM in Safari; #2 Graceful degradation; #3 script.aculo.us and the Yahoo UI libraries; #4 Using JSON libraries in your PHP code; Using JSON in PHP 5.1 and earlier; #5 Ajax and ASP.NET; You don’t NEED ASP.NET Ajax to build Internet Explorer-compatible web apps; Utility Functions: Just Gimme the Code; utils.js: a work in progress;

Le informazioni nella sezione "Su questo libro" possono far riferimento a edizioni diverse di questo titolo.

I migliori risultati di ricerca su AbeBooks

Edizione Internazionale
Edizione Internazionale

1.

Rebecca M. Riordan
ISBN 10: 0596515782 ISBN 13: 9780596515782
Nuovi Brossura Quantità: 10
Edizione Internazionale
Da
bookscollection
(Delhi, DELHI, India)
Valutazione libreria
[?]

Descrizione libro Condizione libro: Brand New. PAPERBACK,Book Condition New, Brand New, Softcover, International Edition. We Do not Ship APO FPO AND PO BOX. Cover Image & ISBN may be different from US edition but contents as US Edition. Printing in English language. Quick delivery by USPS/UPS/DHL/FEDEX/ARAMEX ,Customer satisfaction guaranteed. We may ship the books from Asian regions for inventory purpose. Codice libro della libreria ABESTTND7317

Maggiori informazioni su questa libreria | Fare una domanda alla libreria

Compra nuovo
EUR 16,71
Convertire valuta

Aggiungere al carrello

Spese di spedizione: EUR 4,58
Da: India a: Italia
Destinazione, tempi e costi
Edizione Internazionale
Edizione Internazionale

2.

Rebecca M. Riordan
ISBN 10: 0596515782 ISBN 13: 9780596515782
Nuovi Paperback Quantità: > 20
Edizione Internazionale
Da
US_Superfast_Bookstore
(New Castle, DE, U.S.A.)
Valutazione libreria
[?]

Descrizione libro Paperback. Condizione libro: New. This is an International Edition Brand New Paperback Same Title Author and Edition as listed. ISBN and Cover design differs. Similar Contents as U.S Edition. Standard Delivery within 6-14 business days ACROSS THE GLOBE. We can ship to PO Box address in US. International Edition Textbooks may bear a label "Not for sale in the U.S. or Canada" or "For sale in Asia only" or similar restrictions- printed only to discourage students from obtaining an affordable copy. US Court has asserted your right to buy and use International edition. Access code/CD may not provided with these editions. We may ship the books from multiple warehouses across the globe including Asia depending upon the availability of inventory. Printed in English. Customer satisfaction guaranteed. Codice libro della libreria US9780596515782

Maggiori informazioni su questa libreria | Fare una domanda alla libreria

Compra nuovo
EUR 16,81
Convertire valuta

Aggiungere al carrello

Spese di spedizione: EUR 8,32
Da: U.S.A. a: Italia
Destinazione, tempi e costi
Edizione Internazionale
Edizione Internazionale

3.

Riordan, Rebecca M.
Editore: O'Reilly Media
ISBN 10: 0596515782 ISBN 13: 9780596515782
Nuovi Brossura Quantità: > 20
Edizione Internazionale
Da
Sunshine Book Store
(Wilmington, DE, U.S.A.)
Valutazione libreria
[?]

Descrizione libro O'Reilly Media. Condizione libro: New. 0596515782 This is an International Edition. Brand New, Paperback, Delivery within 6-14 business days, Similar Contents as U.S Edition, ISBN and Cover design may differ, printed in Black & White. Choose Expedited shipping for delivery within 3-8 business days. We do not ship to PO Box, APO , FPO Address. In some instances, subjects such as Management, Accounting, Finance may have different end chapter case studies and exercises. International Edition Textbooks may bear a label "Not for sale in the U.S. or Canada" and "Content may different from U.S. Edition" - printed only to discourage U.S. students from obtaining an affordable copy. The U.S. Supreme Court has asserted your right to purchase international editions, and ruled on this issue. Access code/CD is not provided with these editions , unless specified. We may ship the books from multiple warehouses across the globe, including India depending upon the availability of inventory storage. Customer satisfaction guaranteed. Codice libro della libreria NU9780596515782

Maggiori informazioni su questa libreria | Fare una domanda alla libreria

Compra nuovo
EUR 19,33
Convertire valuta

Aggiungere al carrello

Spese di spedizione: EUR 9,25
Da: U.S.A. a: Italia
Destinazione, tempi e costi

4.

Rebecca M. Riordan
ISBN 10: 0596515782 ISBN 13: 9780596515782
Nuovi Paperback Quantità: 5
Edizione Internazionale
Da
PRIORITY BOOKS
(springfield, VA, U.S.A.)
Valutazione libreria
[?]

Descrizione libro Paperback. Condizione libro: New. Softcover Book, Condition: New. 1st Edition. [Please Read Carefully Before Buying], This Is An International Edition. Printed In Black and White. 528 Pages, Book Cover And ISBN No May Be Different From US Edition. Restricted Sales Disclaimer Wordings Not For Sales In USA And Canada May Be Printed On The Cover Of The Book. Standard Shipping 7-14 Business Days. Expedited Shiping 4-8 Business Days. ***WE DO NOT ENTERTAIN BULK ORDERS.*** The Books May Be Ship From Overseas For Inventory Purpose. Codice libro della libreria 510697

Maggiori informazioni su questa libreria | Fare una domanda alla libreria

Compra nuovo
EUR 20,92
Convertire valuta

Aggiungere al carrello

Spese di spedizione: EUR 8,32
Da: U.S.A. a: Italia
Destinazione, tempi e costi
Edizione Internazionale
Edizione Internazionale

5.

Rebecca M. Riordan
ISBN 10: 0596515782 ISBN 13: 9780596515782
Nuovi Soft cover Quantità: > 20
Edizione Internazionale
Da
University Bookstore
(DELHI, DELHI, India)
Valutazione libreria
[?]

Descrizione libro 2008. Soft cover. Condizione libro: New. This book is BRAND NEW Soft cover International edition with black and white printing. ISBN number & cover page may be different but contents identical to the US edition word by word. Book is in English language. Codice libro della libreria UN-SHRO-664

Maggiori informazioni su questa libreria | Fare una domanda alla libreria

Compra nuovo
EUR 15,53
Convertire valuta

Aggiungere al carrello

Spese di spedizione: EUR 14,50
Da: India a: Italia
Destinazione, tempi e costi

6.

Rebecca M. Riordan
ISBN 10: 0596515782 ISBN 13: 9780596515782
Nuovi Paperback Quantità: 5
Edizione Internazionale
Da
Nick Book House
(fresno, CA, U.S.A.)
Valutazione libreria
[?]

Descrizione libro Paperback. Condizione libro: New. New Softcover International Edition, Printed in Black and White, Only USPS Media mail Shipping ONLY, Different ISBN, Same Content As US edition, Book Cover may be Different, in English Language. Codice libro della libreria 32574

Maggiori informazioni su questa libreria | Fare una domanda alla libreria

Compra nuovo
EUR 20,96
Convertire valuta

Aggiungere al carrello

Spese di spedizione: EUR 9,25
Da: U.S.A. a: Italia
Destinazione, tempi e costi

7.

Rebecca M. Riordan
Editore: O Reilly Media, Inc, USA, United States (2008)
ISBN 10: 0596515782 ISBN 13: 9780596515782
Nuovi Paperback Quantità: 1
Da
The Book Depository
(London, Regno Unito)
Valutazione libreria
[?]

Descrizione libro O Reilly Media, Inc, USA, United States, 2008. Paperback. Condizione libro: New. 234 x 201 mm. Language: English . Brand New Book. Ajax is no longer an experimental approach to website development, but the key to building browser-based applications that form the cornerstone of Web 2.0. Head First Ajax gives you an up-to-date perspective that lets you see exactly what you can do - and has been done - with Ajax. With it, you get a highly practical, in-depth, and mature view of what is now a mature development approach. Using the unique and highly effective visual format that has turned Head First titles into runaway bestsellers, this book offers a big picture overview to introduce Ajax, and then explores the use of individual Ajax components - including the JavaScript event model, DOM, XML, JSON, and more - as it progresses.You ll find plenty of sample applications that illustrate the concepts, along with exercises, quizzes, and other interactive features to help you retain what you ve learned. Head First Ajax covers: the JavaScript event model; making Ajax requests with XML REQUEST objects; the asynchronous application model; the Document Object Model (DOM); manipulating the DOM in JavaScript; controlling the browser with the Browser Object Model; XHTML Forms; POST Requests; XML Syntax and the XML DOM tree; XML Requests Responses; JSON - an alternative to XML; Ajax architecture patterns; and the Prototype Library.The book also discusses the server-side implications of building Ajax applications, and uses a black box approach to server-side components. Head First Ajax is the ideal guide for experienced web developers comfortable with scripting - particularly those who have completed the exercises in Head First JavaScript - and for experienced programmers in Java, PHP, and C# who want to learn client-side programming. Codice libro della libreria AAH9780596515782

Maggiori informazioni su questa libreria | Fare una domanda alla libreria

Compra nuovo
EUR 31,86
Convertire valuta

Aggiungere al carrello

Spese di spedizione: GRATIS
Da: Regno Unito a: Italia
Destinazione, tempi e costi

8.

Rebecca M. Riordan
Editore: O Reilly Media, Inc, USA, United States (2008)
ISBN 10: 0596515782 ISBN 13: 9780596515782
Nuovi Paperback Quantità: 1
Da
The Book Depository US
(London, Regno Unito)
Valutazione libreria
[?]

Descrizione libro O Reilly Media, Inc, USA, United States, 2008. Paperback. Condizione libro: New. 234 x 201 mm. Language: English . Brand New Book. Ajax is no longer an experimental approach to website development, but the key to building browser-based applications that form the cornerstone of Web 2.0. Head First Ajax gives you an up-to-date perspective that lets you see exactly what you can do - and has been done - with Ajax. With it, you get a highly practical, in-depth, and mature view of what is now a mature development approach. Using the unique and highly effective visual format that has turned Head First titles into runaway bestsellers, this book offers a big picture overview to introduce Ajax, and then explores the use of individual Ajax components - including the JavaScript event model, DOM, XML, JSON, and more - as it progresses.You ll find plenty of sample applications that illustrate the concepts, along with exercises, quizzes, and other interactive features to help you retain what you ve learned. Head First Ajax covers: the JavaScript event model; making Ajax requests with XML REQUEST objects; the asynchronous application model; the Document Object Model (DOM); manipulating the DOM in JavaScript; controlling the browser with the Browser Object Model; XHTML Forms; POST Requests; XML Syntax and the XML DOM tree; XML Requests Responses; JSON - an alternative to XML; Ajax architecture patterns; and the Prototype Library.The book also discusses the server-side implications of building Ajax applications, and uses a black box approach to server-side components. Head First Ajax is the ideal guide for experienced web developers comfortable with scripting - particularly those who have completed the exercises in Head First JavaScript - and for experienced programmers in Java, PHP, and C# who want to learn client-side programming. Codice libro della libreria AAH9780596515782

Maggiori informazioni su questa libreria | Fare una domanda alla libreria

Compra nuovo
EUR 31,97
Convertire valuta

Aggiungere al carrello

Spese di spedizione: GRATIS
Da: Regno Unito a: Italia
Destinazione, tempi e costi

9.

Riordan, Rebecca M.
ISBN 10: 0596515782 ISBN 13: 9780596515782
Nuovi Paperback Quantità: > 20
Da
BargainBookStores
(Grand Rapids, MI, U.S.A.)
Valutazione libreria
[?]

Descrizione libro Paperback. Condizione libro: New. Codice libro della libreria 848434

Maggiori informazioni su questa libreria | Fare una domanda alla libreria

Compra nuovo
EUR 23,33
Convertire valuta

Aggiungere al carrello

Spese di spedizione: EUR 11,56
Da: U.S.A. a: Italia
Destinazione, tempi e costi

10.

Rebecca M Riordan
Editore: O'Reilly Media 2008-09-02|NU-ING-00311336 (2008)
ISBN 10: 0596515782 ISBN 13: 9780596515782
Nuovi Paperback Quantità: 4
Da
Chiron Media
(Wallingford, Regno Unito)
Valutazione libreria
[?]

Descrizione libro O'Reilly Media 2008-09-02|NU-ING-00311336, 2008. Paperback. Condizione libro: New. 9780596515782. Codice libro della libreria NU-ING-00311336

Maggiori informazioni su questa libreria | Fare una domanda alla libreria

Compra nuovo
EUR 33,07
Convertire valuta

Aggiungere al carrello

Spese di spedizione: EUR 3,45
Da: Regno Unito a: Italia
Destinazione, tempi e costi

Vedi altre copie di questo libro

Vedi tutti i risultati per questo libro