A Javascript Framework Comparison Based on Benchmarking Software Metrics and Environment Configuration

Total Page:16

File Type:pdf, Size:1020Kb

A Javascript Framework Comparison Based on Benchmarking Software Metrics and Environment Configuration Technological University Dublin ARROW@TU Dublin Dissertations School of Computer Sciences 2018 A JavaScript Framework Comparison Based on Benchmarking Software Metrics and Environment Configuration Jefferson Ferreira Follow this and additional works at: https://arrow.tudublin.ie/scschcomdis Part of the Computer Sciences Commons Recommended Citation Ferreira, Jefferson (2018). A javascript framework comparison based on benchmarking software metrics and environment configuration . Masters dissertation, DIT, 2018. This Dissertation is brought to you for free and open access by the School of Computer Sciences at ARROW@TU Dublin. It has been accepted for inclusion in Dissertations by an authorized administrator of ARROW@TU Dublin. For more information, please contact [email protected], [email protected]. This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 4.0 License A JavaScript framework comparison based on benchmarking software metrics and environment configuration Jefferson Ferreira BSc, Computer Science, Universidade Veiga de Almeida, 2012 A dissertation submitted in partial fulfilment of the requirements of Dublin Institute of Technology for the degree of M.Sc. in Computing (Advanced Software Development) January 2018 I certify that this dissertation which I now submit for examination for the award of MSc in Computing (Knowledge Management), is entirely my own work and has not been taken from the work of others save and to the extent that such work has been cited and acknowledged within the test of my work. This dissertation was prepared according to the regulations for postgraduate study of the Dublin Institute of Technology and has not been submitted in whole or part for an award in any other Institute or University. The work reported on in this dissertation conforms to the principles and requirements of the Institute’s guidelines for ethics in research. Jefferson Luiz da Conceição Ferreira Signed: _________________________________ Date: 03 January 2018 i ABSTRACT JavaScript is a client-side programming language that can be used in multi-platform applications. It controls HTML and CSS to manipulate page behaviours and is widely used in most websites over the internet. JavaScript frameworks are structures made to help web developers build web applications faster by offering features that enhance the user interaction with the web page. An increasing number of JavaScript frameworks have been released in recent years in the market to help front-end developers build applications in a shorter space of time. Decision makers in software companies have been struggling to determine which frameworks are best suited for a specific project. This work investigates the actual state-of-the-art of JavaScript framework comparison, and it proposes metrics and methods that could help developers when choosing a JavaScript framework. In this work, a benchmark framework executes tasks to test the efficiency of three JavaScript frameworks (AngularJS, Aurelia, and Ember). The research shows the impact of the environment (CPU usage and network connectivity) on JavaScript frameworks. Keywords: JavaScript, JavaScript framework comparison, performance testing, benchmarking, test environment, JavaScript framework adoption ii ACKNOWLEDGEMENTS I would like to express my sincere thanks to my supervisor Dr John Gilligan who was extremely patient, attentive with me; always suggesting improvements that challenged my knowledge and enhanced my confidence in my technical skills. I would also like to thank my family, especially my mother who was always supportive in my decisions and gave a lot of strength to pursue this degree. Thanks to all my friends who were always there for me in every difficult and stressful moment that I went through during the course. iii TABLE OF CONTENTS ABSTRACT ................................................................................................................ II TABLE OF FIGURES ............................................................................................ VII TABLE OF TABLES ................................................................................................ IX 1 INTRODUCTION ................................................................................................. 1 1.1 BACKGROUND .................................................................................................... 1 1.2 RESEARCH PROJECT/PROBLEM ........................................................................... 2 1.3 RESEARCH OBJECTIVES ...................................................................................... 3 1.4 RESEARCH METHODOLOGIES ............................................................................. 4 1.5 SCOPE AND LIMITATIONS ................................................................................... 4 1.6 DOCUMENT OUTLINE ......................................................................................... 5 2 LITERATURE REVIEW .................................................................................... 6 2.1 INTRODUCTION ................................................................................................... 6 2.2 JAVASCRIPT AND JAVASCRIPT FRAMEWORKS .................................................... 6 2.2.1 AngularJS ............................................................................................... 7 2.2.2 Ember ...................................................................................................... 8 2.2.3 Aurelia .................................................................................................... 9 2.2.4 JavaScript frameworks comparison ..................................................... 10 2.2.5 System processes ................................................................................... 12 2.2.6 Asynchronous programming explained ................................................ 16 2.2.7 Promises explained ............................................................................... 18 2.3 PERFORMANCE EVALUATION ............................................................................ 20 2.3.1 Benchmarking ....................................................................................... 21 2.3.2 Other performance evaluations types ................................................... 22 2.3.3 Benchmarking JavaScript frameworks ................................................. 23 2.3.4 Benchmarking databases ...................................................................... 25 2.3.5 TODO benchmark application ............................................................. 27 2.4 BENCHMARKING METRICS ................................................................................ 29 2.5 PERFORMANCE.NOW (CLOCK) .......................................................................... 30 2.6 VIRTUAL MACHINE VS DUAL BOOT ................................................................. 32 iv 2.7 CHAPTER SUMMARY ......................................................................................... 33 3 DESIGN AND METHODOLOGY ................................................................... 34 3.1 INTRODUCTION ................................................................................................. 34 3.2 JAVASCRIPT FRAMEWORK BENCHMARK APPLICATION ..................................... 34 3.3 RESTFUL API .................................................................................................. 38 3.4 GOOGLE CLOUD PLATFORM ............................................................................. 40 3.5 NETWORK......................................................................................................... 41 3.6 EXPERIMENT DESIGN ....................................................................................... 42 3.7 CHAPTER SUMMARY ......................................................................................... 44 4 IMPLEMENTATION AND RESULTS ........................................................... 45 4.1 INTRODUCTION ................................................................................................. 45 4.2 SOFTWARE USED .............................................................................................. 45 4.3 FRAMEWORK IMPLEMENTATIONS ..................................................................... 46 4.3.1 RESTful API .......................................................................................... 46 4.3.2 Clock settings ........................................................................................ 51 4.3.3 Processes .............................................................................................. 51 4.3.4 AngularJS ............................................................................................. 52 4.3.5 Aurelia .................................................................................................. 54 4.3.6 Ember .................................................................................................... 55 4.4 ENVIRONMENT CONFIGURATION ...................................................................... 57 4.5 RESULTS ........................................................................................................... 57 4.6 CHAPTER SUMMARY ......................................................................................... 58 5 ANALYSIS, EVALUATION AND DISCUSSION .......................................... 59 5.1 INTRODUCTION ................................................................................................
Recommended publications
  • THE FUTURE of SCREENS from James Stanton a Little Bit About Me
    THE FUTURE OF SCREENS From james stanton A little bit about me. Hi I am James (Mckenzie) Stanton Thinker / Designer / Engineer / Director / Executive / Artist / Human / Practitioner / Gardner / Builder / and much more... Born in Essex, United Kingdom and survived a few hair raising moments and learnt digital from the ground up. Ok enough of the pleasantries I have been working in the design field since 1999 from the Falmouth School of Art and onwards to the RCA, and many companies. Ok. less about me and more about what I have seen… Today we are going to cover - SCREENS CONCEPTS - DIGITAL TRANSFORMATION - WHY ASSETS LIBRARIES - CODE LIBRARIES - COST EFFECTIVE SOLUTION FOR IMPLEMENTATION I know, I know, I know. That's all good and well, but what does this all mean to a company like mine? We are about to see a massive change in consumer behavior so let's get ready. DIGITAL TRANSFORMATION AS A USP Getting this correct will change your company forever. DIGITAL TRANSFORMATION USP-01 Digital transformation (DT) – the use of technology to radically improve performance or reach of enterprises – is becoming a hot topic for companies across the globe. VERY DIGITAL CHANGING NOT VERY DIGITAL DIGITAL TRANSFORMATION USP-02 Companies face common pressures from customers, employees and competitors to begin or speed up their digital transformation. However they are transforming at different paces with different results. VERY DIGITAL CHANGING NOT VERY DIGITAL DIGITAL TRANSFORMATION USP-03 Successful digital transformation comes not from implementing new technologies but from transforming your organisation to take advantage of the possibilities that new technologies provide.
    [Show full text]
  • Marsily-Msc2010
    U C L L S M . Richer Web Applications On Trends, Techniques and Standards Supervisor: Prof. J. V Master esis: Partial Fulllment of the Requirements for the Degree of Master in Business Engineering Charles M 2323.05.00 INGE22MS/G [email protected] Academic Year 2009-2010 . Acknowledgment I would like to thank my supervisor Prof. Jean V for providing me a subject as interesting as rich web applications. Writing this document has redened how I use the Web today. e e e In addition, this work might not have been possible without my family’s continuous support. .. C C i L F iii I v Disclaimer.................................................................. vi Content & objectives........................................................ vi 1 U RIA 1 1.1 Denition and criteria ................................................. 1 ick vs. thin applications ................................................. 3 Client/server applications vs. web applications................................. 4 RIA features and characteristics ............................................. 5 Deployment alternatives ................................................... 6 1.2 Why RIAs are emerging? .............................................. 6 1.3 Limitations ........................................................... 8 1.4 Web applications vs. native apps: what to choose for the iPhone?. 9 1.5 RIAs as a part of a broader Web 2.0 era ................................. 11 1.6 RIAs for enterprises ................................................... 14
    [Show full text]
  • Javascript Raamistikude Analüüs Ja Võrdlus Struktureeritud SPA Rakendustes Magistritöö
    TALLINNA TEHNIKAÜLIKOOL Infotehnoloogia teaduskond Informaatika instituut Infosüsteemide õppetool JavaScript raamistikude analüüs ja võrdlus struktureeritud SPA rakendustes Magistritöö Üliõpilane: Jevgeni Rumjantsev Üliõpilaskood: 144252IAPM Juhendaja: lektor Raul Liivrand Tallinn 2015 Autorideklaratsioon Kinnitan, et olen koostanud antud lõputöö iseseisvalt ning seda ei ole kellegi teise poolt varem kaitsmisele esitatud. Kõik töö koostamisel kasutatud teiste autorite tööd, olulised seisukohad, kirjandusallikatest ja mujalt pärinevad andmed on töös viidatud. (kuupäev) (allkiri) Annotatsioon Magistritööl on kaks eesmärki: 1. Analüüsida tänapäeval populaarsemaid JavaScript raamistikke eesmärgiga arendada erinevate suurustega rakendusi. Analüüs tehakse abstraktsel näiterakendusel, mis käsitleb taaskasutatavat põhifunktsionaalsust ja raamistikuga seotud probleeme, produktiivsust, rakenduse hallatavust ja paindlikkust. 2. Võrrelda sarnase funktsionaalsusega JavaScript raamistikud eesmärgiga aru saada, millist raamistiku on parem kasutada. Lisaks ka aru saada, kas analüüsitud JavaScript raamistikuga ehitatud rakendust on võimalik toetada lähi- ja kaugtulevikus. Rakendust pannakse kokku kogukonna poolt valmis tehtud komponentidest. Autor uurib, kuidas mõjutab paigaldatud komponendid rakenduse laadimiskiirust ja töövõimet. Samuti peetakse silmas ohtusid raamistikuga arendamises: rakenduse lahtisus-kinnisus, arhitektuur ja selle paindlikkus ja haldamine, raamistiku õppimise raskus, rakenduse testimine ning kui hästi on otsingumootoritega leitav.
    [Show full text]
  • Web Design and Implementation
    Web design and implementation Web design • It’s another type of publishing – Your web site is you shop window –people will judge your company on it – Web publishing is no different from other types of publishing – Spelling, grammar, point size, broken links, incorrect captions – Social networking sites make this available to all • Get the domain name right – Inventive: business.com vs PlentyOfFish (dating site) • Design is important – But functionality more so – Integrate good design with backend databases • http://www.webpagesthatsuck.com – http://www.dokimos.org/ajff/ 2/14 Web design mistakes • Ego: Believing people care about you and your website – Why are they looking at your site? – What are they trying to do? – Do you help then achieve THEIR goals? • Can't figure out what your website is about in less than four seconds – http://www.genicap.com/Site/ • Contrast Contrast Contrast • Mystery Meat – Navigation you have to roll over – Zero intelligible content – http://www.osbrinkagency.com/ • Too much stuff – http://www.arngren.net/ 3/14 More Common mistakes • Huge images Useless Title Zero intelligible content • Distracting colour schemes Refuses to work with IE • Flashing gifs, scrolling text Only works with IE • Music Requires Flash • Unclear navigation Assumes screen size • Unreadable Assumes font size • Cluttered Contains errors www.webpagesthatsuck.com 4/14 Navigation • Navigation is important – Make the navigation clear – Three clicks maximum to get anywhere – Hard when Sainsbury’s have 25,000 line items – Consistent position/action
    [Show full text]
  • IHM Avec Qooxdoo
    Rich Internet Application développée avec Manifestation DevelopR6 du 16 juin 2011 Développement d'Interfaces Hommes Machines [email protected] Plan ● Le contexte ● TEdit: choix d'une RIA ● qooXdoo : kéZako? ● L'environnement qooXdoo ○ Le développement ○ Le déploiement ○ La documentation ○ La gestion du framework ● Les interfaces Web ○ Les objets ○ Les évènements ● Les données ● Conclusion DevolpR6 - 16 juin 2011 - [email protected] - 02 / 29 Le contexte ● STERM : Services terminologiques à l'INIST-CNRS ○ Termsciences: Portail terminologique multidisciplinaire ○ SearchByTerm: Interrogation de ressources externes assistée par des vocabulaires terminologiques ○ Tapis: Serveur de données terminologiques ○ Tedit: Interface de gestion des données terminologiques DevolpR6 - 16 juin 2011 - [email protected] - 03 / 29 Termsciences ● Portail Web : http://www.termsciences.fr ● Ressource terminologique multidisciplinaire ● Multi vocabulaires ● Multi institutions (INIST, INRA, INRIA, INSERM ...) DevolpR6 - 16 juin 2011 - [email protected] - 04 / 29 SearchByTerm ● Service Web ● Recherche assistée par de la terminologie ● Accès à différentes ressources bibliographiques DevolpR6 - 16 juin 2011 - [email protected] - 05 / 29 Tapis ● Serveur de données et de traitements (sans IHM) ● Données terminologiques ● Service Web RESTful DevolpR6 - 16 juin 2011 - [email protected] - 06 / 29 TEdit ● Interface de gestion des données de Tapis ● Outil de production des terminologies à l'INIST ● Rich Internet
    [Show full text]
  • Technical Expertise
    www.ultantechnologies.com Technical Expertise Subject: Ultan Technologies Technical Expertise Author: Cathal Brady Date Published: 01/03/2016 Version Number: Version 1 www.ultantechnologies.com Contents 1 INTRODUCTION ..................................................................................................................... 1 2 .NET ....................................................................................................................................... 1 3 DATABASES ........................................................................................................................... 2 4 BIG DATA ............................................................................................................................... 2 5 JAVA ...................................................................................................................................... 3 6 PHP, RUBY, PYTHON .............................................................................................................. 3 7 FRONT END............................................................................................................................ 4 8 3RD PARTY INTEGRATION, APIs, PLUGINS ............................................................................. 4 9 CONTINUOUS INTEGRATION / BUILD AUTOMATION / VERSION CONTROL .......................... 4 10 MOBILE DEVELOPMENT ........................................................................................................ 5 11 CRM CUSTOMISATION .........................................................................................................
    [Show full text]
  • Angular: One of the Most Popular MVC Frameworks in Javascript Lokesh Kumar Dept
    International Journal of Scientific Research & Engineering Trends Volume 6, Issue 3, May-June-2020, ISSN (Online): 2395-566X Angular: One of the Most Popular MVC Frameworks in JavaScript Lokesh Kumar Dept. of Computer Science Email: [email protected] Abstract – Angular is one of the widely used MVC frameworks for modern single-page web application development which is designed to support dynamic views in the web applications. JavaScript frameworks are the backbone of single page web applications development and provide superpowers to plain HTML and JavaScript. Angular, release by the search engine Google and uses the MVC architecture with the onset up source JavaScript. Angular is highly enriched in prominent attribute for designing the client side applications with many features and properties. There numerous new mobile and web-based application frameworks have been released and adopted in both communities of software development industry and research. It allows you to decorate your HTML with special markup that synchronizes with your JavaScript leaving you to write your application logic instead of manually updating views. There are various other JavaScript frameworks like VueJS, BackboneJS and ReactJS frameworks competing together with the different versions of ‘Angular’ frameworks. To further assist Angular developers, this research proposes how the concept of model-driven development can be applied to Angular-based development. As the usage and demand of mobile applications increased, the need for cross-platform frameworks has significantly increased as well. This paper totally revolves around the Angular, like a tour to Angular with its important features and also gives the introduction to the versions of Angular.
    [Show full text]
  • Real-Time Collaboration Support for Javascript Frameworks
    Faculty of Computer Science Institute of System Architecture, Chair of Computer Networks Minor Thesis REAL-TIME COLLABORATION SUPPORT FOR JAVASCRIPT FRAMEWORKS Franz Josef Grüneberger Matrikel-Nr.: 3385643 Supervised by: Prof. Dr. rer. nat. habil. Dr. h. c. Alexander Schill and: Dipl.-Medieninf. Matthias Heinrich, Dr. Thomas Springer Submitted on July 14, 2012 CONFIRMATION I confirm that I independently prepared the thesis and that I used only the references and auxiliary means indicated in the thesis. Dresden, July 14, 2012 CONTENTS 1 Introduction 1 1.1 Motivation and Objectives . .2 1.2 Introductory Application Example . .3 1.3 Structure of the Thesis . .3 2 The Web as Application Platform 5 2.1 Evolution of the Web . .5 2.1.1 The Web as Document Environment . .6 2.1.2 The Web as Application Environment . .6 2.1.3 The Web as Desktop-Like Application Environment . .7 2.2 Classification of Web Applications . .8 2.2.1 Classification Based on Application Domain . .8 2.2.2 Classification Based on Implementation Technology . .9 2.2.3 Classification of Current Web Applications . 10 2.3 Development Approaches for Collaborative Web Applications . 11 2.3.1 Operational Transformation Libraries . 11 2.3.2 Collaborative Widget Libraries . 12 2.3.3 Transparent Adaptation . 13 2.3.4 Code Injection . 14 2.4 Conclusion . 14 I 3 Conception of a Collaboration Extension for JavaScript Frameworks 17 3.1 Requirements for a Collaboration Extension . 18 3.2 Architectural Patterns of JavaScript Frameworks . 19 3.2.1 Model-View-Controller (MVC) . 20 3.2.2 Presentation Model (PM) . 20 3.3 Classification of JavaScript Frameworks .
    [Show full text]
  • Web Development Nc Iii Training Regulations
    TRAINING REGULATIONS WEB DEVELOPMENT NC III INFORMATION AND COMMUNICATIONS TECHNOLOGY (ICT) SECTOR TECHNICAL EDUCATION AND SKILLS DEVELOPMENT AUTHORITY East Service Road, South Superhighway, Taguig City, Metro Manila Technical Education and Skills Development Act of 1994 (Republic Act No. 7796) Section 22, “Establishment and Administration of the National Trade Skills Standards” of the RA 7796 known as the TESDA Act mandates TESDA to establish national occupational skills standards. The Authority shall develop and implement a certification and accreditation program in which private industry group and trade associations are accredited to conduct approved trade tests, and the local government units to promote such trade testing activities in their respective areas in accordance with the guidelines to be set by the Authority. The Training Regulations (TR) serve a s basis for the: 1 Competency assessment and certification; 2 Registration and delivery of training programs; and 3 Development of curriculum and assessment instruments. Each TR has four sections: Section 1 Definition of Qualification – describes the qualification and defines the competencies that comprise the qualification. Section 2 The Competency Standards format was revised to include the Required Knowledge and Required Skills per element. These fields explicitly state the required knowledge and skills for competent performance of a unit of competency in an informed and effective manner. These also emphasi ze the application of knowledge and skills to situations where understanding is converted into a workplace outcome. Section 3 Training Arrangements - contain information and requirements which serve as bases for training providers in designing and deliver ing competency - based curriculum for the qualification. The revisions to section 3 entail identifying the Learning Activities leading to achievement of the identified Learning Outcome per unit of competency.
    [Show full text]
  • Le Javascript Côté Serveur La Revolution Du Web
    LE JAVASCRIPT CÔTÉ SERVEUR LA REVOLUTION DU WEB Le JavaScript côté serveur sera-t-il aussi pérenne que le Java et le PHP ? Mohamed Aharchi Master II – Expert en Ingénierie Informatique Mémoire de fin d’étude 2017-2018 Résumé De nos jours, les entreprises attendent des développeurs qu’ils puissent maîtriser plusieurs langages informatiques. Il est courant de voir des fiches de poste du type « Java / Angular (JavaScript) ». Alors on se demande d’où provient cette double compétence requise ? Il faut savoir que cela n’a pas toujours été ainsi. De base on recrutait des développeurs Java pure pour réaliser des applications logicielles avec un seul langage. Les navigateurs n’étaient pas assez puissants pour supporter de grosses applications type client lourd. Mais ce temps est révolu ! En effet avec la montée en puissance des applications web grâce notamment grâce à une amélioration de performances des navigateurs et des serveurs web, la majorité des entreprises tend maintenant à développer leur pôle applicatif web. Jusque-là, pas de problèmes. Seul bémol les langages populaires comme Java ou encore PHP sont des langages serveurs. C’est-à-dire que pour une application web donnée, lors d’une requête d’un navigateur web pour accéder à l’application, ses fichiers sont exécutés depuis le serveur d’hébergement de l’application. Ensuite, les données sont retranscrites en HTML et renvoyé au navigateur. Ainsi une fois la page web chargé, plus aucune possibilité d’exécuter du code serveur sans devoir recharger la page. On obtient donc une application web avec les données que nous souhaitons, mais qu’en est-t-il du design ? Le design s’exécute côté client, les langages serveurs ne peuvent donc pas y accéder.
    [Show full text]
  • Ember.Js Front-End Framework – SEO Challenges and Frameworks Comparison
    Ember.js front-end framework – SEO challenges and frameworks comparison Sunil Shrestha Bachelor’s Thesis Degree Program in BITe October 2015 Abstract Author Group Sunil Shrestha BITE10S Title of report Report pages Ember.js front-end framework – SEO challenges and frameworks 43+4 comparison Supervisor Juhani Välimäki IWA Labs Oy, a Finnish company with extensive experience in modern information technology provides professional service in Search Engine Optimization (SEO), online marketing as well as develop mobile and web applications for its clients. In order to provide smooth and better user experience with web applications, the company has adapted front-end dedicated frameworks such as AngularJS, Backbone.js, etc. Therefore, the company is interested in Ember.js– another emerging front-end framework that was first released in 2011. The paper aims to study over current development of Ember.js and compare it with alternative frameworks based on community popularity and their core features. Furthermore, it also addresses some of the most common SEO challenges from Ember.js standpoint. The comparison of frameworks is based on various metrics of each framework such as GitHub stars, commits history, available plugins, Stack Overflow questions, Google trend over time etc. Additionally, core features are also discussed in terms of Model- View-Controller (MVC) pattern. On the other hand, possible solutions for most common SEO challenges in Ember.js are studied and tested via a sample application. Based on the community popularity, AngularJS is clearly proven to be the most popular framework. Nonetheless, based on GitHub commits and other metrics, Ember.js can be taken equally an active and fast growing project.
    [Show full text]
  • Pixaxe: a Declarative, Client-Focused Web Application Framework
    Pixaxe: A Declarative, Client-Focused Web Application Framework Rob King Principal Researcher, TippingPoint DVLabs Abstract than most “server agnostic” frameworks), an extremely easy to use Model-View-Controller (MVC) design, and a This paper provides a brief introduction to and overview very bandwidth-frugal design that transmits a page only of the Pixaxe Web Application Framework (“Pixaxe”). once and then transmits only changes to interesting data. Pixaxe is a framework with several novel features, in- Pixaxe was deisgned to be very useful in developing cluding a transparent template system that runs entirely web interfaces for legacy applications, or in other situ- within the web browser, an emphasis on developing rich ations where the web interface is not the primary inter- internet applications as simple web pages, and pushing as face to a set of data. It was also designed to be very much logic and rendering overhead to the client as possi- efficient in the use of server resources, by limiting re- ble. This paper also introduces several underlying tech- quired bandwidth and performing as much computation nologies of Pixaxe, each of which can be used separately: and rendering on the client as possible. In fact, Pixaxe re- Jenner, a completely client-side template engine; Esel, a quires nothing more of a server than the ability to serve powerful expression and query language; and Kouprey, a static files. parser combinator library for ECMAScript. In feel, Pixaxe is closest to XForms [9] 1, in that it views web pages as declarative interfaces modifying lo- 1 Introduction cal models that can then be synchronized with servers without reloading the page.
    [Show full text]