Browser Developer Tools for APEX Developers Christian Rokitta Berlin 2017
1993 today 1996 1999 2009 20152010 2011 2014 Oracle Database Version 6 Hoechst AG Clinical Research Frankfurt, Germany Custom Development Utrecht, Netherlands <HTML> Oracle Consultant/Product Development Manager Utrecht, Netherlands mod_plsql Oracle Web Toolkit JavaScript(); HTML DB APEX Speaker Oracle Database & Application Express Consultant Utrecht, Netherlands {CSS} proud member of APEX UI Customization Reporting Plug-in Christian Rokitta
Oracle APEX Architecture Browser Mid Tier Database Tier Oracle APEX Engine Oracle Database Data Schemas App Development IDE is a web browser. No client software needed
IDE’s for Oracle Database • Develop • Testing • Debug • Tuning • Formatting • … PLSQL Developer TOAD SQL DeveloperSQL*Plus
Additional Skillset for APEX Developers
Evolution of the Internet
Evolution of the Internet http://like.allmyfaves.com/like/site/name/evolutionofweb.appspot.com
Desktop Browser Market Share Worldwide Jan to Dec 2009
Desktop Browser Market Share Worldwide Jan to Dec 2013
Desktop Browser Market Share Worldwide Apr 2016 to Apr 2017
Real Users vs Geeks aka End Users vs Developers
Browser Developer Tools Overview Chrome Internet Explorer/Edge macOS only same engine as Chrome(Canary)
How to open the DevTools • Select More Tools > Developer Tools from Chrome's Main Menu. • Right-click a page element and select Inspect. • Press Command+Option+I (Mac) or Control+Shift+I (Windows, Linux). • F12
DevTools Panels • Elements panel Iterate on the layout and design of your site by freely manipulating the DOM and CSS. • Inspect and Tweak Your Pages • Edit Styles • Edit the DOM • Inspect Animations
Tips & Tricks Styling :active, :hover, :focus, :visited states It becomes a little more tricky when testing other element states such as hover. Solution: Chrome has a button built for this purpose. In the "Elements" tab's right hand column look for the dotted element/cursor icon which allows you to switch an elements states. Incrementing CSS Values If you have an element which you need to modify the margin, padding, width or height for, you can use the cursor keys to increment/decrement the size. Simply use the up and down cursor keys to increment/decrement by a unit of 1. Find in Styles While inspecting the CSS style rules for an element on a page with a lot of styles, you might get frustrated. However, you can filter the style rules easily!
DevTools Panels • Elements panel • Console panel Log diagnostic information during development or interact with the JavaScript on the page. • Using the Console • Interact from Command Line
Tips & Tricks Snippets Snippets allow you to write multi-line JavaScript code, save them in the dev tools memory (they are preserved forever, until you delete them), have a git style version history. Inspecting <iframes> from the console If one of your scripts are in an iframe, which you wish to inspect in the console, you might find that directly typing the variable names defined for the iframe won’t work. You can change the window frame you are inspecting from the console!
Tips & Tricks The console API The console has a very nice API. Here are 5 quick tips for the Chrome Web Console: • $ is an alias to document.querySelector, and $$ is an alias to document.querySelectorAll. • $0, $1... $4 give reference to the last 4 DOM elements selected from the DOM inspector. (So when you have to select an element, right click, and inspect element, then type $0 in the console!) • $_ holds the value for the last expression evaluated in the console. Useful when you are running a lot of expressions simultaneously. • debug(function), typing this in the console would watch for the function passed as the first parameter to be called. When it is called, the debugger will be invoked, and the script would be paused. • getEventListeners(domElement) would list all the event listeners attached to the DOM element.
DevTools Panels • Elements panel • Console panel • Sources panel Debug your JavaScript using breakpoints or connect your local files via Workspaces to use DevTools as a code editor. • Debugging JavaScript • Pause Your Code With Breakpoints • DevTools Workspaces • Source mapping
DevTools Panels • Elements panel • Console panel • Sources panel • Network panel Inspect page load performance and debug request issues.
DevTools Panels • Elements panel • Console panel • Sources panel • Network panel • Performance panel Improve the runtime performance of your page by recording and exploring the various events that happen during the lifecycle of a site.
DevTools Panels • Elements panel • Console panel • Sources panel • Network panel • Performance panel • Memory panel Profile memory usage and track down leaks. • Identify Memory Problems • JavaScript CPU Profiler
DevTools Panels • Elements panel • Console panel • Sources panel • Network panel • Performance panel • Memory panel • Application panel Inspect all resources that are loaded, including IndexedDB or Web SQL databases, local and session storage, cookies, Application Cache, images, fonts, and stylesheets.
DevTools Panels • Elements panel • Console panel • Sources panel • Network panel • Performance panel • Memory panel • Application panel • Security panel Debug mixed content issues, certificate problems, and more.
DevTools Panels • Elements panel • Console panel • Sources panel • Network panel • Performance panel • Memory panel • Application panel • Security panel • Device Mode • Emulate your site across different screen sizes and resolutions, including Retina displays. • Responsively design by visualizing and inspecting CSS media queries. • Evaluate your site's load performance with the Network Conditions drawer, without affecting traffic to other tabs. • Accurately simulate device input for touch events, geolocation, and device orientation
DevTools Panels • Elements panel • Console panel • Sources panel • Network panel • Performance panel • Memory panel • Application panel • Security panel • Device Mode • Remote debug live content on an Android device from your Windows, Mac, Linux or Chrome computer through USB
Conclusion The dev tools are really very powerful and provide a great, open playground for beginners to learn, speculate, experiment, and think. If you are a beginner, make yourself comfortable with the dev- tools from the start. It would help you in your due course of learning JavaScript, as well as HTML and CSS.
Q&A www.rokit.nl www.themes4apex.com www.apexsmartpivot.com blog.rokit.nl @crokitta @themes4apex @apexsmartpivot www.linkedin.com/in/rokit

Browser Developer Tools for APEX Developers

  • 1.
    Browser Developer Tools forAPEX Developers Christian Rokitta Berlin 2017
  • 2.
    1993 today 1996 1999 200920152010 2011 2014 Oracle Database Version 6 Hoechst AG Clinical Research Frankfurt, Germany Custom Development Utrecht, Netherlands <HTML> Oracle Consultant/Product Development Manager Utrecht, Netherlands mod_plsql Oracle Web Toolkit JavaScript(); HTML DB APEX Speaker Oracle Database & Application Express Consultant Utrecht, Netherlands {CSS} proud member of APEX UI Customization Reporting Plug-in Christian Rokitta
  • 3.
    Oracle APEX Architecture BrowserMid Tier Database Tier Oracle APEX Engine Oracle Database Data Schemas App Development IDE is a web browser. No client software needed
  • 4.
    IDE’s for OracleDatabase • Develop • Testing • Debug • Tuning • Formatting • … PLSQL Developer TOAD SQL DeveloperSQL*Plus
  • 5.
    Additional Skillset forAPEX Developers
  • 6.
  • 7.
    Evolution of theInternet http://like.allmyfaves.com/like/site/name/evolutionofweb.appspot.com
  • 8.
    Desktop Browser MarketShare Worldwide Jan to Dec 2009
  • 9.
    Desktop Browser MarketShare Worldwide Jan to Dec 2013
  • 10.
    Desktop Browser MarketShare Worldwide Apr 2016 to Apr 2017
  • 11.
    Real Users vsGeeks aka End Users vs Developers
  • 12.
    Browser Developer Tools Overview Chrome InternetExplorer/Edge macOS only same engine as Chrome(Canary)
  • 13.
    How to openthe DevTools • Select More Tools > Developer Tools from Chrome's Main Menu. • Right-click a page element and select Inspect. • Press Command+Option+I (Mac) or Control+Shift+I (Windows, Linux). • F12
  • 15.
    DevTools Panels • Elementspanel Iterate on the layout and design of your site by freely manipulating the DOM and CSS. • Inspect and Tweak Your Pages • Edit Styles • Edit the DOM • Inspect Animations
  • 16.
    Tips & Tricks Styling:active, :hover, :focus, :visited states It becomes a little more tricky when testing other element states such as hover. Solution: Chrome has a button built for this purpose. In the "Elements" tab's right hand column look for the dotted element/cursor icon which allows you to switch an elements states. Incrementing CSS Values If you have an element which you need to modify the margin, padding, width or height for, you can use the cursor keys to increment/decrement the size. Simply use the up and down cursor keys to increment/decrement by a unit of 1. Find in Styles While inspecting the CSS style rules for an element on a page with a lot of styles, you might get frustrated. However, you can filter the style rules easily!
  • 17.
    DevTools Panels • Elementspanel • Console panel Log diagnostic information during development or interact with the JavaScript on the page. • Using the Console • Interact from Command Line
  • 18.
    Tips & Tricks Snippets Snippetsallow you to write multi-line JavaScript code, save them in the dev tools memory (they are preserved forever, until you delete them), have a git style version history. Inspecting <iframes> from the console If one of your scripts are in an iframe, which you wish to inspect in the console, you might find that directly typing the variable names defined for the iframe won’t work. You can change the window frame you are inspecting from the console!
  • 19.
    Tips & Tricks Theconsole API The console has a very nice API. Here are 5 quick tips for the Chrome Web Console: • $ is an alias to document.querySelector, and $$ is an alias to document.querySelectorAll. • $0, $1... $4 give reference to the last 4 DOM elements selected from the DOM inspector. (So when you have to select an element, right click, and inspect element, then type $0 in the console!) • $_ holds the value for the last expression evaluated in the console. Useful when you are running a lot of expressions simultaneously. • debug(function), typing this in the console would watch for the function passed as the first parameter to be called. When it is called, the debugger will be invoked, and the script would be paused. • getEventListeners(domElement) would list all the event listeners attached to the DOM element.
  • 20.
    DevTools Panels • Elementspanel • Console panel • Sources panel Debug your JavaScript using breakpoints or connect your local files via Workspaces to use DevTools as a code editor. • Debugging JavaScript • Pause Your Code With Breakpoints • DevTools Workspaces • Source mapping
  • 21.
    DevTools Panels • Elementspanel • Console panel • Sources panel • Network panel Inspect page load performance and debug request issues.
  • 22.
    DevTools Panels • Elementspanel • Console panel • Sources panel • Network panel • Performance panel Improve the runtime performance of your page by recording and exploring the various events that happen during the lifecycle of a site.
  • 23.
    DevTools Panels • Elementspanel • Console panel • Sources panel • Network panel • Performance panel • Memory panel Profile memory usage and track down leaks. • Identify Memory Problems • JavaScript CPU Profiler
  • 24.
    DevTools Panels • Elementspanel • Console panel • Sources panel • Network panel • Performance panel • Memory panel • Application panel Inspect all resources that are loaded, including IndexedDB or Web SQL databases, local and session storage, cookies, Application Cache, images, fonts, and stylesheets.
  • 25.
    DevTools Panels • Elementspanel • Console panel • Sources panel • Network panel • Performance panel • Memory panel • Application panel • Security panel Debug mixed content issues, certificate problems, and more.
  • 26.
    DevTools Panels • Elementspanel • Console panel • Sources panel • Network panel • Performance panel • Memory panel • Application panel • Security panel • Device Mode • Emulate your site across different screen sizes and resolutions, including Retina displays. • Responsively design by visualizing and inspecting CSS media queries. • Evaluate your site's load performance with the Network Conditions drawer, without affecting traffic to other tabs. • Accurately simulate device input for touch events, geolocation, and device orientation
  • 27.
    DevTools Panels • Elementspanel • Console panel • Sources panel • Network panel • Performance panel • Memory panel • Application panel • Security panel • Device Mode • Remote debug live content on an Android device from your Windows, Mac, Linux or Chrome computer through USB
  • 29.
    Conclusion The dev toolsare really very powerful and provide a great, open playground for beginners to learn, speculate, experiment, and think. If you are a beginner, make yourself comfortable with the dev- tools from the start. It would help you in your due course of learning JavaScript, as well as HTML and CSS.
  • 30.

Editor's Notes

  • #4 The Oracle Application Express architecture requires some form of Web server to proxy requests between a client Web browser and the Oracle Application Express engine. The Web server options include: Oracle REST Data Services: Oracle REST Data Services (ORDS) is a Java based, free tool that is fully supported when used with Oracle WebLogic Server, Oracle Glassfish Server, and Tomcat. Embedded PL/SQL Gateway: The Embedded PL/SQL Gateway (EPG) runs in the Oracle XML DB Protocol Server within the Oracle Database and includes the core features of mod_plsql. Oracle HTTP Server: The Oracle HTTP Server (Apache) with mod_plsql plugin can be placed on the same physical machine as the database, or on a separate physical machine. Please note that mod_plsql is deprecated as of Oracle HTTP Server 12c (12.1.3).