Asynchronous development in javascript can be a very powerful development paradigm. Ajax applications make use of this paradigm. This presentation will provide an insight about the important things to consider while creating Rich Internet applications
Solving the C20K problem: Raising the bar in PHP Performance and ScalabilityZendCon
How do you configure and tune your PHP applications to handle 20,000
or more concurrent connections to your database on your desktop? This technical session describes how to implement and tune PHP's OCI8 extension with Oracle's Database Resident Connection Pool (DRCP).
One of MongoDB’s primary appeals to developers is that it gives them the ability to start application development without needing to define a formal, up-front schema. Operations teams appreciate the fact that they don't need to perform a time-consuming schema upgrade operation every time the developers need to store a different attribute (as an example, The Weather Channel is now able to launch new features in hours whereas it used to take weeks). For business leaders, the application gets launched much faster, and new features can be rolled out more frequently. MongoDB powers agility.
Some projects reach a point where it's necessary to define rules on what's being stored in the database – for example, that for any document in a particular collection, you can be assured that certain attributes are present.
To address the challenges discussed above, while at the same time maintaining the benefits of a dynamic schema, MongoDB 3.2 introduces document validation.
There is significant flexibility to customize which parts of the documents are **and are not** validated for any collection.
Neo, wake up! SOA has you! :)
A complete accademic overview about the Web Oriented Architecture. A comparison between WOA and SOA is well described. What is ReST and why it is so important for the WOA. A proxy ReST-to-SOAP, based on Oracle Service Bus, is explained. Which products WOA lovers are searching for? This presentation has some "sponsored slides" from Oracle.
MySQL/MariaDB replication is asynchronous. You can make replication faster by using better hardware (faster CPU, more RAM, or quicker disks), or you can use parallel replication to remove it single-threaded limitation; but lag can still happen. This talk is not about making replication faster, it is how to deal with its asynchronous nature, including the (in-)famous lag.
We will start by explaining the consequences of asynchronous replication and how/when lag can happen. Then, we will present the solution used at Booking.com to avoid both creating lag and minimize the consequence of stale reads on slaves (hint: this solution does not mean reading from the master because this does not scale).
Once all above is well understood, we will discuss how Booking.com’s solution can be improved: this solution was designed years ago and we would do this differently if starting from scratch today. Finally, I will present an innovative way to avoid lag: the no-slave-left-behind MariaDB patch.
Solving the C20K problem: Raising the bar in PHP Performance and ScalabilityZendCon
How do you configure and tune your PHP applications to handle 20,000
or more concurrent connections to your database on your desktop? This technical session describes how to implement and tune PHP's OCI8 extension with Oracle's Database Resident Connection Pool (DRCP).
One of MongoDB’s primary appeals to developers is that it gives them the ability to start application development without needing to define a formal, up-front schema. Operations teams appreciate the fact that they don't need to perform a time-consuming schema upgrade operation every time the developers need to store a different attribute (as an example, The Weather Channel is now able to launch new features in hours whereas it used to take weeks). For business leaders, the application gets launched much faster, and new features can be rolled out more frequently. MongoDB powers agility.
Some projects reach a point where it's necessary to define rules on what's being stored in the database – for example, that for any document in a particular collection, you can be assured that certain attributes are present.
To address the challenges discussed above, while at the same time maintaining the benefits of a dynamic schema, MongoDB 3.2 introduces document validation.
There is significant flexibility to customize which parts of the documents are **and are not** validated for any collection.
Neo, wake up! SOA has you! :)
A complete accademic overview about the Web Oriented Architecture. A comparison between WOA and SOA is well described. What is ReST and why it is so important for the WOA. A proxy ReST-to-SOAP, based on Oracle Service Bus, is explained. Which products WOA lovers are searching for? This presentation has some "sponsored slides" from Oracle.
MySQL/MariaDB replication is asynchronous. You can make replication faster by using better hardware (faster CPU, more RAM, or quicker disks), or you can use parallel replication to remove it single-threaded limitation; but lag can still happen. This talk is not about making replication faster, it is how to deal with its asynchronous nature, including the (in-)famous lag.
We will start by explaining the consequences of asynchronous replication and how/when lag can happen. Then, we will present the solution used at Booking.com to avoid both creating lag and minimize the consequence of stale reads on slaves (hint: this solution does not mean reading from the master because this does not scale).
Once all above is well understood, we will discuss how Booking.com’s solution can be improved: this solution was designed years ago and we would do this differently if starting from scratch today. Finally, I will present an innovative way to avoid lag: the no-slave-left-behind MariaDB patch.
Eine Client-Server-Architektur stellt besondere Anforderungen an die Client-Server-Kommunikation. Einerseits wird Sparsamkeit angestrebt, andererseits absolute Flexibilität, Wiederverwendbarkeit und Wartbarkeit. Gerade im GWT-Umfeld fehlen clientseitig eine vollwertige JVM und das Reflection-API. Hinzu kommt noch der teilweise ungewohnte Umgang mit den asynchronen Aufrufen. In diesem Vortrag wird das Command Pattern vorgestellt. Es werden konkrete Lösungsansätze für Batching, Caching, Security und Journaling vorgestellt.
Petabytes of Data and No Servers: Corteva Scales DNA Analysis to Meet Increas...Capgemini
Petabytes of Data and No Servers: Corteva Scales DNA Analysis to Meet Increasing Business Demand - At #reInvent, join Corteva and Sogeti as they share their journey from petabytes of data & no servers to success in meeting increasing business demand.
On Wednesday, May 27, Red Hat and its partners Xebia, Ciber, Profict and Sogeti had organized the seminar "Business-critical processes with JBoss'. They have shared what solutions they have developed for customers like the Nationale Postcodeloterij, NXP and NS-HiSpeed and what their benefits are.
This seminar was organized in Utrecht.
Xebia had covered the topic: "Migration to JBoss, Made Cost Effective and Easy"
Eine Client-Server-Architektur stellt besondere Anforderungen an die Client-Server-Kommunikation. Einerseits wird Sparsamkeit angestrebt, andererseits absolute Flexibilität, Wiederverwendbarkeit und Wartbarkeit. Gerade im GWT-Umfeld fehlen clientseitig eine vollwertige JVM und das Reflection-API. Hinzu kommt noch der teilweise ungewohnte Umgang mit den asynchronen Aufrufen. In diesem Vortrag wird das Command Pattern vorgestellt. Es werden konkrete Lösungsansätze für Batching, Caching, Security und Journaling vorgestellt.
Petabytes of Data and No Servers: Corteva Scales DNA Analysis to Meet Increas...Capgemini
Petabytes of Data and No Servers: Corteva Scales DNA Analysis to Meet Increasing Business Demand - At #reInvent, join Corteva and Sogeti as they share their journey from petabytes of data & no servers to success in meeting increasing business demand.
On Wednesday, May 27, Red Hat and its partners Xebia, Ciber, Profict and Sogeti had organized the seminar "Business-critical processes with JBoss'. They have shared what solutions they have developed for customers like the Nationale Postcodeloterij, NXP and NS-HiSpeed and what their benefits are.
This seminar was organized in Utrecht.
Xebia had covered the topic: "Migration to JBoss, Made Cost Effective and Easy"
Evolution of the web through the lens of a developer
Tech Talk @ Georgia Gwinnett University,
1000 University Center Lane
Lawrenceville, GA 30043
Talk Schedule :
http://www.ggc.edu/ggc-life/campus-events/icalrepeat.detail/2011/03/09/744/27|25|26/Yjc4Zjg4NjM1NTAyN2JlMzRmNjczZWMzYzA2Y2JhMjU=
YUI or Yahoo! User Interface Libraries is a rich collection of Javascript and CSS libraries that
can help a web developer create rich experiences and highly interactive web sites. The libraries
are open source and there is a active community around it.
YUI 2 was hugely successful with its large collection of utilities and Widgets. Many Yahoo! sites and non Yahoo! sites use these libraries extensively. YUI 3 is the latest offering from Yahoo! that is a much more extensible and powerful Javascript and CSS library. YUI 3 incorporates all the learnings from the experiences creating YUI 2 libraries and many web standards.
Todays talk is an introduction into YUI 3 as an Open Source Project and how a developer can get on to contributing to YUI. The talk will give various pointers and references that will allow some one to start exploring the YUI libraries, more specifically YUI 3.0
The basics to start developing Rich Internet applications.
This presentation talks about some of the important stuff to follow to make the web application both interactive and robust
PHP Frameworks: I want to break free (IPC Berlin 2024)Ralf Eggert
In this presentation, we examine the challenges and limitations of relying too heavily on PHP frameworks in web development. We discuss the history of PHP and its frameworks to understand how this dependence has evolved. The focus will be on providing concrete tips and strategies to reduce reliance on these frameworks, based on real-world examples and practical considerations. The goal is to equip developers with the skills and knowledge to create more flexible and future-proof web applications. We'll explore the importance of maintaining autonomy in a rapidly changing tech landscape and how to make informed decisions in PHP development.
This talk is aimed at encouraging a more independent approach to using PHP frameworks, moving towards a more flexible and future-proof approach to PHP development.
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfPeter Spielvogel
Building better applications for business users with SAP Fiori.
• What is SAP Fiori and why it matters to you
• How a better user experience drives measurable business benefits
• How to get started with SAP Fiori today
• How SAP Fiori elements accelerates application development
• How SAP Build Code includes SAP Fiori tools and other generative artificial intelligence capabilities
• How SAP Fiori paves the way for using AI in SAP apps
Elevating Tactical DDD Patterns Through Object CalisthenicsDorra BARTAGUIZ
After immersing yourself in the blue book and its red counterpart, attending DDD-focused conferences, and applying tactical patterns, you're left with a crucial question: How do I ensure my design is effective? Tactical patterns within Domain-Driven Design (DDD) serve as guiding principles for creating clear and manageable domain models. However, achieving success with these patterns requires additional guidance. Interestingly, we've observed that a set of constraints initially designed for training purposes remarkably aligns with effective pattern implementation, offering a more ‘mechanical’ approach. Let's explore together how Object Calisthenics can elevate the design of your tactical DDD patterns, offering concrete help for those venturing into DDD for the first time!
Sudheer Mechineni, Head of Application Frameworks, Standard Chartered Bank
Discover how Standard Chartered Bank harnessed the power of Neo4j to transform complex data access challenges into a dynamic, scalable graph database solution. This keynote will cover their journey from initial adoption to deploying a fully automated, enterprise-grade causal cluster, highlighting key strategies for modelling organisational changes and ensuring robust disaster recovery. Learn how these innovations have not only enhanced Standard Chartered Bank’s data infrastructure but also positioned them as pioneers in the banking sector’s adoption of graph technology.
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
Pushing the limits of ePRTC: 100ns holdover for 100 daysAdtran
At WSTS 2024, Alon Stern explored the topic of parametric holdover and explained how recent research findings can be implemented in real-world PNT networks to achieve 100 nanoseconds of accuracy for up to 100 days.
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
Dr. Sean Tan, Head of Data Science, Changi Airport Group
Discover how Changi Airport Group (CAG) leverages graph technologies and generative AI to revolutionize their search capabilities. This session delves into the unique search needs of CAG’s diverse passengers and customers, showcasing how graph data structures enhance the accuracy and relevance of AI-generated search results, mitigating the risk of “hallucinations” and improving the overall customer journey.
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024Neo4j
Neha Bajwa, Vice President of Product Marketing, Neo4j
Join us as we explore breakthrough innovations enabled by interconnected data and AI. Discover firsthand how organizations use relationships in data to uncover contextual insights and solve our most pressing challenges – from optimizing supply chains, detecting fraud, and improving customer experiences to accelerating drug discoveries.
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfPaige Cruz
Monitoring and observability aren’t traditionally found in software curriculums and many of us cobble this knowledge together from whatever vendor or ecosystem we were first introduced to and whatever is a part of your current company’s observability stack.
While the dev and ops silo continues to crumble….many organizations still relegate monitoring & observability as the purview of ops, infra and SRE teams. This is a mistake - achieving a highly observable system requires collaboration up and down the stack.
I, a former op, would like to extend an invitation to all application developers to join the observability party will share these foundational concepts to build on:
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
Removing Uninteresting Bytes in Software FuzzingAftab Hussain
Imagine a world where software fuzzing, the process of mutating bytes in test seeds to uncover hidden and erroneous program behaviors, becomes faster and more effective. A lot depends on the initial seeds, which can significantly dictate the trajectory of a fuzzing campaign, particularly in terms of how long it takes to uncover interesting behaviour in your code. We introduce DIAR, a technique designed to speedup fuzzing campaigns by pinpointing and eliminating those uninteresting bytes in the seeds. Picture this: instead of wasting valuable resources on meaningless mutations in large, bloated seeds, DIAR removes the unnecessary bytes, streamlining the entire process.
In this work, we equipped AFL, a popular fuzzer, with DIAR and examined two critical Linux libraries -- Libxml's xmllint, a tool for parsing xml documents, and Binutil's readelf, an essential debugging and security analysis command-line tool used to display detailed information about ELF (Executable and Linkable Format). Our preliminary results show that AFL+DIAR does not only discover new paths more quickly but also achieves higher coverage overall. This work thus showcases how starting with lean and optimized seeds can lead to faster, more comprehensive fuzzing campaigns -- and DIAR helps you find such seeds.
- These are slides of the talk given at IEEE International Conference on Software Testing Verification and Validation Workshop, ICSTW 2022.
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
4. Synchronous operation
• Start-stop-start-stop nature of interaction
• The web by default is Synchronous
• Communication between processes is un-
buffered, and processes wait until the
interaction between them has been completed
• Process will wait till conformation to go ahead is
got
Technical Presentation 4
5. Synchronous operation …
Activity Activity Activity
Communication Communication
System Processing System Processing
Technical Presentation 5
6. Synchronous operation …
User Activity User Activity User Activity
Client
Time Data Transmission Data Transmission
Data Processing Data Processing
Server
Technical Presentation 6
8. Asynchronous operation
• User activity is continuous
• Operation will not wait for response
• Chances of Race conditions
• Good model for GUI applications
– Data Fetch is independent of data render
• Interaction between concepts have to deal with
smaller data packets
Technical Presentation 8
9. Asynchronous operation …
Client User Activity
Data
nse
nse
Data
po
po
Re
Re
Res
Res
ques
ques
Ajax
Data
Data
t
t
Client Client
Processing Processing
Time Data Transmission Data Transmission
Server System Processing System Processing
Technical Presentation 9
10. Asynchronous operation …
• Communication between processes is buffered
using buffers of unlimited size
• The sender never waits after sending data
• Responses needs to be tracked
• On the web, if the wait time for response is not
handled properly, it might lead to multiple
requests by the user
Technical Presentation 10
12. Ajax is a broad term
• Any DHTML application is termed as Ajax
applications
• Is no longer an acronym
• Most rich web applications have some sort of
asynchronous behavior
• Business logic is off loaded to the client
• Heavy DOM manipulation
Technical Presentation 12
13. Caching
• Any repetitive action can be cached
– Style calculation for a DOM element
– DOM tree structure
– JSON data
– Remote response data
• Caching can improve overall user experience
• Simple Caching is cheap on the Browser
Technical Presentation 13
15. Asynchronous HTTP Request
• XHR for short is an API to transfer data to and
fro between the client (User Agent) and the
server (Web server) over HTTP
– XHR is an abbreviation for XML Http Request
• The data interchange need not be just XML
– Popular Data interchange formats are JSON, XML,
Plain Text and CSV
Technical Presentation 15
16. Asynchronous HTTP Request …
• Usual steps in Ajax web applications
– Create an XMLHttpRequest object
– Make a HTTP request to the server
– Register your callback function for handling the
response
– Handle the response, check for return status
– Parse the response on success, display result
Technical Presentation 16
17. Some code
callBackObj = {
success : handleSuccess,
failure : handleFailure,
argument : [argument1, argument2, argument3],
cache : false
};
var xhr = YAHOO.util.Connect.asyncRequest(quot;GETquot;, url, callBackObj);
if (!xhr) {
// User agent does not support XHR
}
……
function handleSuccess(o) {
/ * o.tId, o.status, o.getResponseHeader[ ], o.responseText, o.argument */
}
Technical Presentation 17
18. Scope of execution
• Maintaining scope is very important
var callback = {
success : handleSuccess,
failure : handleFailure,
scope : scopeObject
};
• Further processing after response needs to
happen on the same object that initiated it
Technical Presentation 18
19. Client side power
• Client machines are powerful
• Lot of processing can be done on client
– Sorting tables
– Pre-fetching Images
– Client side data store
• YUI data source
– Better visualizations
• Vector graphics capabilities
Technical Presentation 19
21. Tier based architecture
• We follow this practice on server side
development
– DB layer
– Processing Layer
– Interface layer
• Core functionality in base layer
• Functionality and Style added as layers
• Separation of Concern
22. Tier based architecture …
• CSS for styles / presentation
• Javascript validation and DHTML effects
– DHTML widgets to improve usability
• XHR calls to reduce network transfers and
improve application responsiveness
• Each layer is added unobtrusively
Technical Presentation 22
23. Why layer
• Programming effort to produce the data is the
same, programming effort to format the data
varies across formats
• Different data formats require different
processing capabilities on client and server.
• Will make code more extensible for the future
Technical Presentation 23
24. Data Interchange
Load less, add on later
24
Technical Presentation
26. Data formats
• Web 2.0 popularized the use of JSON as a
popular data interchange
• XML has been a popular data interchange
• Many Web 2.0 applications exchange HTML data
which is JSON encoded
– Yahoo! home page
• CSV is also supported by the YUI data source
widget
Technical Presentation 26
27. JSON
“JSON is a subset of the object literal notation of
JavaScript. Since JSON is a subset of
JavaScript, it can be used in the language with
no muss or fuss”
- Doulas Crockford
Technical Presentation 27
28. JSON
• Lightweight
• Key value pair based
• Easy to parse
• JSON.org provides a json2.js JSON parser for
client
• All popular languages have JSON parsers
– All listed in JSON.org
• Interchange is a string
Technical Presentation 28
30. XDR
• Cross Domain Request
• XMLHTTPRequest has same origin policy
restriction
• Future browsers may support an XDR object
– IE and Firefox are close to making a release
Technical Presentation 30
31. How to do XDR ?
• The most common way is to use a server side
proxy
Client calls same Remote URL as
origin URI parameter
Same origin Remote URL
Proxy response
Technical Presentation 31
32. How to do XDR ? …
• Use a Dynamic script node
• This can be used only with services which
provide a callback option
• Relies on the fact that script node is attached
globally and can call a global function
• Usually the data passed across in JSON and
hence the method is called JSONP response
services
– JSON with padding
Technical Presentation 32
33. Dynamic script node based fetch
{
…
scr = document.createElement(quot;scriptquot;);
scr.type=quot;text/javascript”;
scr.id = id;
scr.src = “http://xyz.com/query=abc&callback=handleResponse”;
…
document.body.appendChild(scr); // or can be appended to HEAD
}
function handleResponse(o) {
// o is the data you respond from server
}
Technical Presentation 33
34. XDR data fetch
• YUI get utility provides for this
Technical Presentation 34
35. Why Ajax ? When Ajax ?
Ajax is an enhancement not a core functionality
35
Technical Presentation
36. Why?
• Rich User Interface
– User can be more engaged
– User need not load the page everytime to get new
information
• Snappier Response Time
• Lesser content can be loaded the first time
• Lower Bandwidth Usage
– No page reloading
– Only data specific to user request can be loaded
37. Do more with less
• Separation of content, formatting and behaviour
• Initial load time can come down
• Fetch only the data you need, not what your
users may need
Technical Presentation 37
38. Impacts
• Some User Agents may not support Ajax
• Search Engine Optimisation gets a hit if not
properly designed
• Search engines may not be smart enough to
navigate the Ajax based pages
– Bad Frontend development can hide the urls of the
link that initiate Ajax call
– Accessibility of the page can be affected
Technical Presentation 38
39. Impacts …
• Problem for users that assume GET requests do
not change the state of an application
– Confuses Robots, Spiders
– Shows Bad Design – Designer does not know the
difference between GET & POST requests
• Any client-side changes to the page (using
DHTML) are not recorded in the browser's
history
– Yahoo! Browser History Manager saves the day !! :-)
Technical Presentation 39
40. Impacts …
• Back/forward buttons do not work well with rich
applications that use DHTML, they need to be
controlled by the developer
Technical Presentation 40
41. Too much richness isn’t good
Always be aware of what your web application can
do and what your web application should do
41
Technical Presentation
42. Always Remember
• Ajax ( in most cases ) has to be used to enhance
the page, never use Ajax for a core functionality
• Display an indicator/progress of what is
happening behind the scenes
• Have a timeout for the transaction, do not try to
process the request indefinitely
• If possible have an option of the user aborting
the transaction (equivalent of the quot;stopquot; button
in the browser)
Technical Presentation 42