Client-side Debugging. Gary Bettencourt

Similar documents
Brief Intro to Firebug Sukwon Oh CSC309, Summer 2015

Working with Javascript Building Responsive Library apps

TDMobile Architecture & Overview of the TD Mobile IDE. Horst de Lorenzi

Better Web Development with WebKit Remote Debugging. Ashutosh Jagdish Sharma Senior Computer Scientist Adobe Developer Track WWW 2012 Lyon

CSCI 201 Google Chrome DevTools

Integrated Software Environment. Part 2

Master Project Software Engineering: Team-based Development WS 2010/11

WebKit ; FOR : DUMMIES. by Chris Minnick WILEY. John Wiley & Sons, Inc.

City of Mobile GIS Web Mapping Applications: New Technology, New Expectations

Getting Started with the ArcGIS API for JavaScript. Julie Powell, Paul Hann

,

Review of Mobile Web Application Frameworks

B r o w s e r s u p p o r t

Introduction to Sencha Ext JS

Mobile Web Appplications Development with HTML5

The course is supplemented by numerous hands-on labs that help attendees reinforce their theoretical knowledge of the learned material.

JavaScript Programming

Strategies for Building Mobile Apps Using ArcGIS API for JavaScript

BEFORE CLASS. If you haven t already installed the Firebug extension for Firefox, download it now from

There are two main workflows for working with Cordova projects, Web focused and Platform focused.

Using Development Tools to Examine Webpages

COURSE OUTLINE MOC 20480: PROGRAMMING IN HTML5 WITH JAVASCRIPT AND CSS3

UI Course HTML: (Html, CSS, JavaScript, JQuery, Bootstrap, AngularJS) Introduction. The World Wide Web (WWW) and history of HTML

HTML5 Mobile App Development

Building a Simple Mobile optimized Web App/Site Using the jquery Mobile Framework (part 2)

The course also includes an overview of some of the most popular frameworks that you will most likely encounter in your real work environments.

Simple AngularJS thanks to Best Practices

Outline. AJAX for Libraries. Jason A. Clark Head of Digital Access and Web Services Montana State University Libraries

VERSION JANUARY 19, 2015 TEST STUDIO QUICK-START GUIDE STANDALONE & VISUAL STUDIO PLUG-IN TELERIK A PROGRESS COMPANY

Interactive webmaps with ArcGIS. Kristel Meikas, AlphaGIS

Index G, H, I J, K D, E. network monitoring, 15 waterfall chart, 15 Firefox memory window, 98

Getting Started with Authoring in Claro

ThingLink User Guide. Andy Chen Eric Ouyang Giovanni Tenorio Ashton Yon

ReportPlus Embedded Web SDK Guide

Module 5 JavaScript, AJAX, and jquery. Module 5. Module 5 Contains 2 components

Varargs Training & Software Development Centre Private Limited, Module: HTML5, CSS3 & JavaScript

Comprehensive AngularJS Programming (5 Days)

Why attend a Lianja training course? Course overview. Course Details

AJAX Workshop. Karen A. Coombs University of Houston Libraries Jason A. Clark Montana State University Libraries

55191: Advanced SharePoint Development

MOBILE WEB OPTIMIZATION

Module 5 JavaScript, AJAX, and jquery. Module 5. Module 5 Contains an Individual and Group component

Dojo Meets XPages in IBM Lotus Domino 8.5. Steve Leland PouchaPond Software

JavaScript Fundamentals_

Etanova Enterprise Solutions

Product Information

This tutorial has been prepared for beginners to help them understand the basic functionalities of Gulp.

Building Native Mapping Apps with PhoneGap: Advanced Techniques Andy

Using GWT and Eclipse to Build Great Mobile Web Apps

Web Performance in

Drupal Frontend Performance & Scalability

AngularJS Intro Homework

Course 2320 Supplementary Materials. Modern JavaScript Best Practices

Live Guide Co-browsing

FlexJS. OmPrakash Apache Flex PMC Member Advisory Software Engineer, IBM

HTML5 for mobile development.

HTML version of slides:

Browser Support Internet Explorer

8/19/2018. Web Development & Design Foundations with HTML5. Learning Objectives (1 of 2) Learning Objectives (2 of 2) What is JavaScript?

Chapter 2. Operating-System Structures

Selenium. Duration: 50 hrs. Introduction to Automation. o Automating web application. o Automation challenges. o Automation life cycle

Oracle Utilities Customer Self Service

Web Architecture Review Sheet

GRITS AJAX & GWT. Trey Roby. GRITS 5/14/09 Roby - 1

Executive Summary. Performance Report for: The web should be fast. Top 1 Priority Issues. How does this affect me?

Internet Explorer Faqs Page Setup Not Saving

Course 20480: Programming in HTML5 with JavaScript and CSS3

State of jquery Fall John Resig

COURSE 20480B: PROGRAMMING IN HTML5 WITH JAVASCRIPT AND CSS3

Cisco Spark Widgets Technical drill down

HTML5 Applications Made Easy on Tizen IVI. Brian Jones / Jimmy Huang

Web API Lab folder 07_webApi : webapi.jsp your testapijs.html testapijq.html that works functionally the same as the page testapidomjs.

Programming in HTML5 with JavaScript and CSS3

Creative Techniques for Loading Web Pages Faster

P a g e 1. Danish Technological Institute. Scripting and Web Languages Online Course k Scripting and Web Languages

CHAPTER 2: SYSTEM STRUCTURES. By I-Chen Lin Textbook: Operating System Concepts 9th Ed.

Use Page Speed to Optimize Your Web Site for Mobile

Building mobile app using Cordova and AngularJS, common practices. Goran Kopevski

The Structure of the Web. Jim and Matthew

WebApp development. Outline. Web app structure. HTML basics. 1. Fundamentals of a web app / website. Tiberiu Vilcu

Executive Summary. Performance Report for: The web should be fast. Top 4 Priority Issues

Information Technology Fundamentals. Unit 1: Computer Basics Wrap-up

Selenium Testing Course Content

Slide 1: Developer Preview

Telerik Test Studio. Web/Desktop Testing. Software Quality Assurance Telerik Software Academy

Basics of Web Technologies

Visual HTML5. Human Information Interaction for Knowledge Extraction, Interaction, Utilization, Decision making HI-I-KEIUD

Executive Summary. Performance Report for: The web should be fast. Top 5 Priority Issues. How does this affect me?

Web browser architecture

CHOOSING THE RIGHT HTML5 FRAMEWORK To Build Your Mobile Web Application

Introduction to Automation. What is automation testing Advantages of Automation Testing How to learn any automation tool Types of Automation tools

JavaScript and MVC Frameworks FRONT-END ENGINEERING

Blackboard Collaborate Ultra

Modern Web Application Development. Sam Hogarth

Web Browser as an Application Platform Antero Taivalsaari

[PACKT] HTML5, CSS3, and jquery. Dreamweaver CS5.5 Mobile. and Web Development with

ATC Android Application Development

Copyright

55249: Developing with the SharePoint Framework Duration: 05 days

Index LICENSED PRODUCT NOT FOR RESALE

Transcription:

Client-side Debugging Gary Bettencourt

Overview What is client-side debugging Tool overview Simple & Advanced techniques Debugging on Mobile devices

Overview Client debugging involves more then just debugging JavaScript Layout issues What css is being applied to elements Structure of the DOM Modern web apps make heavy use of DOM manipulation, viewing source doesn t always help Update style/structure in real-time to test changes Instead of re-compile, refresh to test Networking problems Timing Slowness What information is being sent to/from server Headers, Cache

Overview Client debugging involves more then just debugging JavaScript Profile code to find performance issues Both CPU and memory Console output to view log messages Resource usage What s in cookies What s in local/session storage Emulate mobile devices Change user agent Emulate touch events Change resolution

Browser Support Internet Explorer Starting with IE9, built-in tools, used to be separate download IE11 should have much improved tools

Browser Support Chrome Built-in, has always been very good Many extensions available

Browser Support Firefox Early on firebug was preferred method (still available, and widely used) Has had built-in tools for a while now

Debugging Simplest mode of debugging is to log messages Early on people littered their code with alerts Then tools like firebug, others came along that provided an API that would output messages to a div/window Now every modern browser has a console console.log( button clicked );

Debugging Our code logs debug messages if debug flag is turned on Can turn on from code (Page Create for instance) Td.Util.debug = true Or by specifying query param MyPage?_debug=true Useful for seeing when binds are updated, and with what value. When operations are being invoked

Debugging Demo console debug

Debugging Debugging Script Just like regular debuggers you re used to Set breakpoints Evaluate expressions View callstack, locals

Debugging Layout Issues Inspect elements Toggle styles Change styles Update attributes

Debugging Network Issues Inspect requests View request/response headers Status codes Timing Helps with async requests, see which comes back first etc.

Debugging Working with minified JavaScript Common to see JavaScript code ran through a tool to make it lightweight Pages download/run faster Removed whitespace, shortens variable names Combines multiple-files into one Overhead in requesting multiple files. Single request is faster.

Debugging Example of running td.js through Google closure compiler

Debugging Downside: hard to debug New technology called source maps solves this problem Compression tools can create maps, which debuggers can use to locate symbols in the original source files Jquery, and TD Mobile JavaScript support source maps

Debugging Demo Layout/Network Debugging & Source Maps

Mobile Debugging Most mobile devices share same code base as their desktop cousins Android -> Chrome ios -> Safari Windows -> IE Developer tools allow emulation of user agent, orientation, events But there still might be cases where debugging on actual device is necessary Timing issues might arise, slower network, CPU, less memory Touch events, vs. mouse clicks Screen resolution

Mobile Debugging Most devices have debug cabability ios has remote debugging, but Safari support on Windows is not good Android has USB debugging support, Chrome extensions available to enable remote debugging

Mobile Debugging Android (4.3) Turn on development tools: Go to Settings -> About. Click on Build Number 5 times. This will unlock developer tools You ll see Developer Options under settings now Turn on USB debugging Go to Chrome (on device) -> Settings -> Developer Tools Turn on Enable USB Web debugging

Mobile Debugging Chrome Desktop Download install Android SDK Download install Chrome ADB plugin When device is connected to PC, grant permission for USB debugging

Debugging Demo Source Mobile Debug

Questions?