SlideShare a Scribd company logo
KSS, Ajax with style Vitaliy Podoba, Developer ©  Quintagroup, 2008
Table of contents What is it about? Why KSS? KSS. Quick Overview Short KSS Reference Advantages Drawbacks
What is it about? KSS is an Ajax framework that allows  UI development without writing any Javascript AJAX?  http://www.adaptivepath.com/ideas/essays/archives/000385.php First Ajaxes:    Google Suggest   Yahoo News KSS – Kinetic Style Sheets
The traditional model vs Ajax model

Recommended for you

Frontrunners react
Frontrunners reactFrontrunners react
Frontrunners react

Why would we want to use the NextJS framework, who is using it already, and what are the key concepts for getting started?

reactnextjsjavascript
Introduce cucumber
Introduce cucumberIntroduce cucumber
Introduce cucumber

This document discusses behavior driven development (BDD) and Cucumber style testing. It provides examples of how to set up Cucumber testing for a Rails application, including installing Cucumber gems, configuring support files, and writing a sample feature file to test user sign up. Code snippets are provided for setting up Cucumber configuration files, installing necessary gems, and defining step definitions. The document aims to demonstrate how Cucumber can be used to write automated tests in a human-readable format.

ruby on railscucumberruby
Introduction core web vitals
Introduction core web vitalsIntroduction core web vitals
Introduction core web vitals

This document discusses Core Web Vitals, which are user-centric web performance metrics defined by Google. It introduces the three Core Web Vitals: Largest Contentful Paint (LCP), First Input Delay (FID), and Cumulative Layout Shift (CLS). Thresholds for what is considered good, adequate, or needs improvement are provided for each metric. The document also outlines tools that can be used to measure Core Web Vitals and explains how real user monitoring is important for field testing Core Web Vitals performance.

#androidappdevelopmentservices#webandmobileappdevelopmentcompany#buildappsforiosandandroid
Why KSS? Preserve from writing Javascript Overcome browser incompatibilities Avoid code duplication Thin browser client No Javascript on the page Provide server side for Zope and Plone
No Javascript on the page <a href=&quot;#&quot; onclick=&quot;javascript:clicked();&quot;> Link</a>
Quick Overview Power of Javascript, syntax of CSS KSS Environment KSS Architecture Kinetic Style Sheets Syntax Server Side Tying it all together
KSS Environment Browser compatibility   Firefox   Internet Explorer   Opera   Konqueror   Safari   Mozilla Supported server platforms   Zope 2.10, 2.11   Zope 3   Grok   Plone 3.0   Pylons   Django

Recommended for you

Windows Azure - Cloud Service Development Best Practices
Windows Azure - Cloud Service Development Best PracticesWindows Azure - Cloud Service Development Best Practices
Windows Azure - Cloud Service Development Best Practices

This document discusses best practices for developing cloud services on Windows Azure. It recommends: 1. Storing state in Windows Azure storage and using loose coupling between components through queues to improve reliability given unreliable networks and hardware failures. 2. Versioning schemas and using rolling upgrades to minimize downtime when deploying updates. 3. Separating code and configuration, using configurable logging and alerts, to aid in debugging when things go wrong in the cloud.

azure pdc
Client Side Measurement & Performance With Rails
Client Side Measurement & Performance With RailsClient Side Measurement & Performance With Rails
Client Side Measurement & Performance With Rails

This document discusses client-side performance measurement and optimization techniques for Rails applications. It recommends measuring performance using the clientperf gem to identify opportunities for improvement. Specific techniques mentioned include making fewer HTTP requests by combining components, gzipping components to reduce file sizes, adding expires headers to eliminate unnecessary requests, placing stylesheets at the top of pages to allow earlier rendering, and placing scripts at the bottom to avoid blocking other downloads. The document notes this is just a starting point and provides additional resources for further optimization.

gemclientperfperformance
Building Ruby on Rails apps on Windows Azure (MIX 2010 at Last Vegas))
Building Ruby on Rails apps on Windows Azure (MIX 2010 at Last Vegas))Building Ruby on Rails apps on Windows Azure (MIX 2010 at Last Vegas))
Building Ruby on Rails apps on Windows Azure (MIX 2010 at Last Vegas))

This document discusses using Ruby on Rails with Windows Azure. It covers using Windows Azure for scalable computation and cloud storage. It provides examples of using SQL Azure, blobs, queues, and tables with Ruby. It also discusses deployment, management, caching, debugging, and other considerations for using Ruby on Rails in the Windows Azure cloud platform.

azure mix ruby rails ror
Architecture
KSS Syntax #kss-spinner:spinneron { action-client: setStyle; setStyle-name: display; setStyle-value: block; } #kss-spinner:spinneroff { action-client: setStyle; setStyle-name: display; setStyle-value: none; }
KSS Syntax a:click { action-client: alert; alert-message: &quot;Clicked&quot;; }
KSS Syntax a:click {  css selector : event action-client: alert;  client action 'alert' alert-message: &quot;Clicked&quot;;  parameter for 'alert' }

Recommended for you

ASP.NET MVC and ajax
ASP.NET MVC and ajax ASP.NET MVC and ajax
ASP.NET MVC and ajax

This document discusses working with ASP.NET MVC and AJAX. It introduces AJAX and its benefits, describes raw AJAX implementation, and multiple AJAX options like Microsoft AJAX, jQuery AJAX, and AJAX helpers. It also covers rendering partial views with AJAX, handling errors, using JSON, and integrating WCF services.

asp.net mvcajax
PWA Roadshow Seoul - HTTPS
PWA Roadshow Seoul - HTTPSPWA Roadshow Seoul - HTTPS
PWA Roadshow Seoul - HTTPS

PWA Roadshow Seoul: HTTPS Google PWA Roadshow HTTPS 세션의 한국어 번역본 사이트: https://gdg-korea-webtech.firebaseapp.com/pwa-roadshow17/

pwaseoulhttpspwaroadshow
Core Web Vitals Optimization for any website, especially WordPress
Core Web Vitals Optimization for any website, especially WordPressCore Web Vitals Optimization for any website, especially WordPress
Core Web Vitals Optimization for any website, especially WordPress

How to optimize Core Web Vitals of your WordPress website? This is a presentation deck by Arya (ThinkWeb.dev) on Dewatalks event July 1, 2021.

core web vitalscwvwebsite optimization
KSS Syntax a:click { evt-click-preventdefault: true;  parameter for event action-client: alert;  alert-message: &quot;Clicked&quot;;  }
KSS Syntax a:click { evt-click-preventdefault: true; action-client: alert; alert-message: &quot;Clicked&quot;; action-server: add;  call server action add-url: nodeAttr('href');  parameter for 'add' }
Server Side kss.core plone.app.kss
Server Side : Template <a href=&quot;some/url&quot; class=&quot;replaceHTML&quot;>Update content</a> <div id=&quot;kss-container&quot;> I need to be updated! </div>

Recommended for you

Intro to the Express Web Framework
Intro to the Express Web FrameworkIntro to the Express Web Framework
Intro to the Express Web Framework

This document provides an introduction to Express, a web application framework for Node.js. It demonstrates how to quickly generate an Express app, explain its default structure and files, and shows examples of serving static files, using views, and defining routes and APIs to handle requests. Key aspects covered include using middleware like the body parser and static file serving, as well as rendering views and sending JSON responses.

expressjsnodejsamazing
Gatling
GatlingGatling
Gatling

Gatling is a load testing tool that focuses on web applications. It uses an actor model with asynchronous IO to simulate multiple users executing scenarios against a system concurrently over a period of time. Gatling provides reports and integrates with tools like Jenkins to define HTTP configurations, scenarios with headers, and simulations that execute scenarios under load.

ReactDC Intro to NextJS 9
ReactDC Intro to NextJS 9ReactDC Intro to NextJS 9
ReactDC Intro to NextJS 9

Hands-on workshop starting a NextJS project from linting to styled-components to dynamic routing and more.

reactnextjs
Server Side: KSS a.replaceHTML:click { evt-click-preventdefault: True; action-server:  response ; }
Server Side : Script # response.py script # import Through-The-Web(TTW) API from kss.core.ttwapi import startKSSCommands,   getKSSCommandSet, renderKSSCommands # start a view for commands startKSSCommands(context, context.REQUEST) # add a command core = getKSSCommandSet('core') core.replaceInnerHTML('#kss-container', '<h1>We did it!</h1>') # render the commands return renderKSSCommands()
Server Side : Response <?xml version=&quot;1.0&quot; ?> <kukit xmlns=&quot;http://www.kukit.org/commands/1.1&quot;   xmlns:tal=&quot;http://xml.zope.org/namespaces/tal&quot;    xmlns:metal=&quot;http://xml.zope.org/namespaces/metal&quot;> <commands> <command selector=&quot;#kss-container&quot;   name=&quot;replaceInnerHTML&quot;   selectorType=&quot;&quot;> <param name=&quot;html&quot;><h1>We did it!</h1></param> </command> </commands> </kukit>
Server Side: Browser View from kss.core import KSSView, kssaction class DemoView(KSSView): @kssaction def response(self):   core = self.getCommandSet('core')   core.replaceInnerHTML('#kss-container', '<h1>We did it!</h1>') demoview.py

Recommended for you

REST API for your WP7 App
REST API for your WP7 AppREST API for your WP7 App
REST API for your WP7 App

My presentation done on Windows Phone App Camp Lithuania. I was also helping as a mentor. It was very interesting experience for me.

restsharprestdoophp
.NET Conf 2018: Build Great Libraries using .NET Standard
.NET Conf 2018: Build Great Libraries using .NET Standard.NET Conf 2018: Build Great Libraries using .NET Standard
.NET Conf 2018: Build Great Libraries using .NET Standard

Description Want to create great .NET class libraries? Confused about .NET Standard, .NET Core, and .NET Framework? Watch this talk to learn how you can easily support multiple platforms with .NET Standard and no compromises, thanks to via multi-targeting. We'll also cover the other aspects, such as versioning, strong naming, and binding redirects.

.net.net standard.net conf
App engine beats pony.key
App engine beats pony.keyApp engine beats pony.key
App engine beats pony.key

This document compares and contrasts Django and Google App Engine. It notes that Django is better suited for content-heavy applications while App Engine is designed for scalability and real-time applications. While App Engine has some limitations around queries and normalization, it also has advantages like built-in services for memcache, email, XMPP, and task queues. The document recommends following best practices like using indexes and memcache when using App Engine.

Server Side: Browser View <browser:page  for=&quot;plone.app.kss.interfaces.IPortalObject&quot;  class=&quot;.demoview.DemoView&quot;  attribute=&quot;response&quot;  name=&quot;response&quot;  permission=&quot;zope2.View&quot;  />
Server Side: KSS Action a.replaceHTML:click { evt-click-preventdefault: True; action-server:  response ; }
Server Side: KSS Action a.replaceHTML:click { evt-click-preventdefault: True; action-server:  response ; action-error: alert; alert-message: &quot;Error on server&quot;; }
Tying it all together Write kss source file Register kss source file with portal_kss Write server side Extend kss with your own plugins:   client actions   command actions   parameter providers   event types   selector types

Recommended for you

Ajax & ASP.NET 2
Ajax & ASP.NET 2Ajax & ASP.NET 2
Ajax & ASP.NET 2

AJAX is a technique for building interactive web applications that uses asynchronous JavaScript and XML requests to update parts of a page without reloading the entire page. It aims to make web pages feel more responsive by exchanging small amounts of data with the server behind the scenes. Common uses of AJAX include Google Maps, Gmail, and Yahoo Mail. The ASP.NET AJAX framework and ASP.NET AJAX Control Toolkit provide tools for implementing AJAX functionality in ASP.NET applications.

ajaxasp.netajax
Service workers and the role they play in modern day web apps
Service workers and the role they play in modern day web appsService workers and the role they play in modern day web apps
Service workers and the role they play in modern day web apps

Service workers have greatly improved the experience of web apps by providing offline access to pages, caching data, background sync and other native app-like features. Nowadays, Progressive Web Apps are working together with service workers to provide the users better performance and experience than a typical web app. But service worker’s power doesn’t just stop at giving offline experience and background notifications. They can be used in areas ranging from request deferring to the virtual server.

javascriptservice-workers
Introduction To Asp.Net Ajax
Introduction To Asp.Net AjaxIntroduction To Asp.Net Ajax
Introduction To Asp.Net Ajax

ASP.NET AJAX is a framework that allows for building richer web applications with more interactive and personalized experiences. It provides tools for asynchronous partial page updates, extending controls with new client-side behaviors, and a full JavaScript class library. Developers can take either a server-centric or client-centric approach to building AJAX applications using ASP.NET AJAX.

Short KSS Reference Events Actions Parameter Providers Command Sets
Basic Events click dblclick load focus blur
Mouse Events mousedown mouseup mouseover mouseout
Form Events change select submit

Recommended for you

Plone Interactivity
Plone InteractivityPlone Interactivity
Plone Interactivity

This document provides an overview of adding interactivity to Plone sites using JavaScript and various Plone-specific tools. It discusses including JavaScript via the resource registry and browser resources, using the Kinetic Style Sheets (KSS) framework to add behaviors with CSS syntax, common JavaScript libraries, debugging techniques, and notes that KSS may be removed from core Plone in future versions due to its large size and lack of adoption.

plonesymposiumeast2009plonejquery
AWS Serverless Workshop
AWS Serverless WorkshopAWS Serverless Workshop
AWS Serverless Workshop

Managed services such as AWS Lambda and API Gateway allow developers to focus on value adding development instead of IT heavy lifting. This workshop introduces how to build a simple REST blog backend using AWS technologies and the serverless framework.

cloudmanaged servicesapi
2 Asp Dot Net Ajax Extensions
2 Asp Dot Net Ajax Extensions2 Asp Dot Net Ajax Extensions
2 Asp Dot Net Ajax Extensions

The document discusses the architecture and components of ASP.NET AJAX extensions. It describes the ScriptManager control as the starting point for ASP.NET AJAX pages. It also covers UpdatePanel for partial page updates, triggers, and UpdateProgress for displaying update status. Web services using ASMX are also discussed as endpoints for asynchronous callbacks from client-side scripts.

aspnet
Automatic Events timeout   evt-timeout-delay   evt-timeout-repeat
Changing HTML Actions replaceInnerHTML insertHTMLAfter deleteNode
Changing Attributes Actions setAttribute setKssAttribute
Form Actions focus

Recommended for you

Progressive web apps
Progressive web appsProgressive web apps
Progressive web apps

Alex Russell Software Engineer, Google at Fastly Altitude 2016 New browser technologies are arriving that are poised to change user and developer expectations of what’s possible on the web; particularly on slow mobile devices with flaky connections. This talk discusses how these new technologies – Service Workers, Progressive Web Apps, HTTP/2, Push, Notifications, and Web Components are being combined, e.g. in the new PRPL pattern, to transform user experiences while improving business results.

web appsmobilegoogle
JSF Component Behaviors
JSF Component BehaviorsJSF Component Behaviors
JSF Component Behaviors

The document discusses the history and architecture of JSF component behaviors. It describes how behaviors allow adding functionality to components through attached objects. A behavior API was introduced to provide a loose coupling between components and behaviors. The API uses client behaviors and behavior holders. The document demonstrates a simple confirm behavior and more advanced auto-suggest behavior to showcase the capabilities of the behavior API.

jsfjsf2
Asp.Net Ajax Component Development
Asp.Net Ajax Component DevelopmentAsp.Net Ajax Component Development
Asp.Net Ajax Component Development

The document discusses developing custom ASP.NET AJAX client components and server controls. It covers the key steps which are: 1) Developing the reusable client component code using the ASP.NET AJAX prototype model. 2) Creating an associated server control that emits the required JavaScript to register and initialize the client component. 3) Wiring up the server control to load and instantiate the client component code.

Debugging Actions error log alert
Parameter Providers formVar(formname, varname) currentFormVar(varname) nodeAttr(attrname) nodeContent()
Command Sets core zope plone plone-legacy effects dad...
Advantages See 'Why KSS?' section Work can be easily divided between    different specialists

Recommended for you

Aspnet2 Overview
Aspnet2 OverviewAspnet2 Overview
Aspnet2 Overview

The document discusses various new features in ASP.NET 2.0 including master pages, themes and skins, personalization, web parts, and improved architecture. Master pages allow common site elements to be defined once and shared across pages. Themes and skins provide mechanisms for theming controls and entire sites. Personalization stores user-specific data. Web parts allow modular and customizable content on a page. The ASP.NET 2.0 architecture provides improvements such as reduced compilation complexity and improved performance.

SXSW: Even Faster Web Sites
SXSW: Even Faster Web SitesSXSW: Even Faster Web Sites
SXSW: Even Faster Web Sites

Presented at SXSW '09, this talk covers five best practices from my next book: Load scripts without blocking, Coupling asynchronous scripts, Don't scatter inline scripts, Use iframes sparingly, and Flush the document early.

Sxsw 20090314
Sxsw 20090314Sxsw 20090314
Sxsw 20090314

The document summarizes Steve Souders' presentation on optimizing frontend performance. It discusses the importance of frontend optimization, common techniques like minimizing HTTP requests and leveraging a CDN. It then covers strategies for loading scripts asynchronously without blocking parallel downloads or rendering, including techniques like script DOM element, XHR injection, and coupling asynchronous scripts with dependencies.

Drawbacks Writing javascript plugins Too many rules can freeze page loading
Links KSS Site   http://kssproject.org AJAX   http://www.adaptivepath.com/publications/essays/archives/000385.php kss.core repository   http://codespeak.net/svn/kukit/kss.core/trunk plone.app.kss repository   https://svn.plone.org/svn/plone/plone.app.kss/trunk

More Related Content

What's hot

Save time, save money: Move your selenium testing on cloud
Save time, save money: Move your selenium testing on cloudSave time, save money: Move your selenium testing on cloud
Save time, save money: Move your selenium testing on cloud
Anshul Sharma
 
Windows Azure - Automating app lifecycle
Windows Azure - Automating app lifecycleWindows Azure - Automating app lifecycle
Windows Azure - Automating app lifecycle
Sriram Krishnan
 
ASP.net MVC CodeCamp Presentation
ASP.net MVC CodeCamp PresentationASP.net MVC CodeCamp Presentation
ASP.net MVC CodeCamp Presentation
buildmaster
 
Frontrunners react
Frontrunners reactFrontrunners react
Frontrunners react
Allison Kunz
 
Introduce cucumber
Introduce cucumberIntroduce cucumber
Introduce cucumber
Bachue Zhou
 
Introduction core web vitals
Introduction core web vitalsIntroduction core web vitals
Introduction core web vitals
SortdMediology
 
Windows Azure - Cloud Service Development Best Practices
Windows Azure - Cloud Service Development Best PracticesWindows Azure - Cloud Service Development Best Practices
Windows Azure - Cloud Service Development Best Practices
Sriram Krishnan
 
Client Side Measurement & Performance With Rails
Client Side Measurement & Performance With RailsClient Side Measurement & Performance With Rails
Client Side Measurement & Performance With Rails
Eric Falcao
 
Building Ruby on Rails apps on Windows Azure (MIX 2010 at Last Vegas))
Building Ruby on Rails apps on Windows Azure (MIX 2010 at Last Vegas))Building Ruby on Rails apps on Windows Azure (MIX 2010 at Last Vegas))
Building Ruby on Rails apps on Windows Azure (MIX 2010 at Last Vegas))
Sriram Krishnan
 
ASP.NET MVC and ajax
ASP.NET MVC and ajax ASP.NET MVC and ajax
ASP.NET MVC and ajax
Brij Mishra
 
PWA Roadshow Seoul - HTTPS
PWA Roadshow Seoul - HTTPSPWA Roadshow Seoul - HTTPS
PWA Roadshow Seoul - HTTPS
Chang W. Doh
 
Core Web Vitals Optimization for any website, especially WordPress
Core Web Vitals Optimization for any website, especially WordPressCore Web Vitals Optimization for any website, especially WordPress
Core Web Vitals Optimization for any website, especially WordPress
ClementYo
 
Intro to the Express Web Framework
Intro to the Express Web FrameworkIntro to the Express Web Framework
Intro to the Express Web Framework
jasonsich
 
Gatling
GatlingGatling
Gatling
Tengwen Wang
 
ReactDC Intro to NextJS 9
ReactDC Intro to NextJS 9ReactDC Intro to NextJS 9
ReactDC Intro to NextJS 9
Allison Kunz
 
REST API for your WP7 App
REST API for your WP7 AppREST API for your WP7 App
REST API for your WP7 App
Agnius Paradnikas
 
.NET Conf 2018: Build Great Libraries using .NET Standard
.NET Conf 2018: Build Great Libraries using .NET Standard.NET Conf 2018: Build Great Libraries using .NET Standard
.NET Conf 2018: Build Great Libraries using .NET Standard
Immo Landwerth
 
App engine beats pony.key
App engine beats pony.keyApp engine beats pony.key
App engine beats pony.key
Alper Çugun
 
Ajax & ASP.NET 2
Ajax & ASP.NET 2Ajax & ASP.NET 2
Ajax & ASP.NET 2
Talal Alsubaie
 
Service workers and the role they play in modern day web apps
Service workers and the role they play in modern day web appsService workers and the role they play in modern day web apps
Service workers and the role they play in modern day web apps
Mukul Jain
 

What's hot (20)

Save time, save money: Move your selenium testing on cloud
Save time, save money: Move your selenium testing on cloudSave time, save money: Move your selenium testing on cloud
Save time, save money: Move your selenium testing on cloud
 
Windows Azure - Automating app lifecycle
Windows Azure - Automating app lifecycleWindows Azure - Automating app lifecycle
Windows Azure - Automating app lifecycle
 
ASP.net MVC CodeCamp Presentation
ASP.net MVC CodeCamp PresentationASP.net MVC CodeCamp Presentation
ASP.net MVC CodeCamp Presentation
 
Frontrunners react
Frontrunners reactFrontrunners react
Frontrunners react
 
Introduce cucumber
Introduce cucumberIntroduce cucumber
Introduce cucumber
 
Introduction core web vitals
Introduction core web vitalsIntroduction core web vitals
Introduction core web vitals
 
Windows Azure - Cloud Service Development Best Practices
Windows Azure - Cloud Service Development Best PracticesWindows Azure - Cloud Service Development Best Practices
Windows Azure - Cloud Service Development Best Practices
 
Client Side Measurement & Performance With Rails
Client Side Measurement & Performance With RailsClient Side Measurement & Performance With Rails
Client Side Measurement & Performance With Rails
 
Building Ruby on Rails apps on Windows Azure (MIX 2010 at Last Vegas))
Building Ruby on Rails apps on Windows Azure (MIX 2010 at Last Vegas))Building Ruby on Rails apps on Windows Azure (MIX 2010 at Last Vegas))
Building Ruby on Rails apps on Windows Azure (MIX 2010 at Last Vegas))
 
ASP.NET MVC and ajax
ASP.NET MVC and ajax ASP.NET MVC and ajax
ASP.NET MVC and ajax
 
PWA Roadshow Seoul - HTTPS
PWA Roadshow Seoul - HTTPSPWA Roadshow Seoul - HTTPS
PWA Roadshow Seoul - HTTPS
 
Core Web Vitals Optimization for any website, especially WordPress
Core Web Vitals Optimization for any website, especially WordPressCore Web Vitals Optimization for any website, especially WordPress
Core Web Vitals Optimization for any website, especially WordPress
 
Intro to the Express Web Framework
Intro to the Express Web FrameworkIntro to the Express Web Framework
Intro to the Express Web Framework
 
Gatling
GatlingGatling
Gatling
 
ReactDC Intro to NextJS 9
ReactDC Intro to NextJS 9ReactDC Intro to NextJS 9
ReactDC Intro to NextJS 9
 
REST API for your WP7 App
REST API for your WP7 AppREST API for your WP7 App
REST API for your WP7 App
 
.NET Conf 2018: Build Great Libraries using .NET Standard
.NET Conf 2018: Build Great Libraries using .NET Standard.NET Conf 2018: Build Great Libraries using .NET Standard
.NET Conf 2018: Build Great Libraries using .NET Standard
 
App engine beats pony.key
App engine beats pony.keyApp engine beats pony.key
App engine beats pony.key
 
Ajax & ASP.NET 2
Ajax & ASP.NET 2Ajax & ASP.NET 2
Ajax & ASP.NET 2
 
Service workers and the role they play in modern day web apps
Service workers and the role they play in modern day web appsService workers and the role they play in modern day web apps
Service workers and the role they play in modern day web apps
 

Similar to Introduction to KSS

Introduction To Asp.Net Ajax
Introduction To Asp.Net AjaxIntroduction To Asp.Net Ajax
Introduction To Asp.Net Ajax
Jeff Blankenburg
 
Plone Interactivity
Plone InteractivityPlone Interactivity
Plone Interactivity
Eric Steele
 
AWS Serverless Workshop
AWS Serverless WorkshopAWS Serverless Workshop
AWS Serverless Workshop
Mikael Puittinen
 
2 Asp Dot Net Ajax Extensions
2 Asp Dot Net Ajax Extensions2 Asp Dot Net Ajax Extensions
2 Asp Dot Net Ajax Extensions
Abhishek Bhatnagar
 
Progressive web apps
Progressive web appsProgressive web apps
Progressive web apps
Fastly
 
JSF Component Behaviors
JSF Component BehaviorsJSF Component Behaviors
JSF Component Behaviors
Andy Schwartz
 
Asp.Net Ajax Component Development
Asp.Net Ajax Component DevelopmentAsp.Net Ajax Component Development
Asp.Net Ajax Component Development
Chui-Wen Chiu
 
Aspnet2 Overview
Aspnet2 OverviewAspnet2 Overview
Aspnet2 Overview
ajitbergi
 
SXSW: Even Faster Web Sites
SXSW: Even Faster Web SitesSXSW: Even Faster Web Sites
SXSW: Even Faster Web Sites
Steve Souders
 
Sxsw 20090314
Sxsw 20090314Sxsw 20090314
Sxsw 20090314
guestcabcf63
 
Google在Web前端方面的经验
Google在Web前端方面的经验Google在Web前端方面的经验
Google在Web前端方面的经验
yiditushe
 
Esposito Ajax Remote
Esposito Ajax RemoteEsposito Ajax Remote
Esposito Ajax Remote
ask bills
 
Javazone 2010-lift-framework-public
Javazone 2010-lift-framework-publicJavazone 2010-lift-framework-public
Javazone 2010-lift-framework-public
Timothy Perrett
 
ASP
ASPASP
Building Progressive Web Apps for Windows devices
Building Progressive Web Apps for Windows devicesBuilding Progressive Web Apps for Windows devices
Building Progressive Web Apps for Windows devices
Windows Developer
 
Testable client side_mvc_apps_in_javascript
Testable client side_mvc_apps_in_javascriptTestable client side_mvc_apps_in_javascript
Testable client side_mvc_apps_in_javascript
Timothy Oxley
 
Deep Dive On Serverless App Development
Deep Dive On Serverless App DevelopmentDeep Dive On Serverless App Development
Deep Dive On Serverless App Development
Amazon Web Services
 
Deep Dive on Serverless App Development
Deep Dive on Serverless App DevelopmentDeep Dive on Serverless App Development
Deep Dive on Serverless App Development
Amazon Web Services
 
Intro To Asp Net And Web Forms
Intro To Asp Net And Web FormsIntro To Asp Net And Web Forms
Intro To Asp Net And Web Forms
SAMIR BHOGAYTA
 
ASP.NET MVC introduction
ASP.NET MVC introductionASP.NET MVC introduction
ASP.NET MVC introduction
Tomi Juhola
 

Similar to Introduction to KSS (20)

Introduction To Asp.Net Ajax
Introduction To Asp.Net AjaxIntroduction To Asp.Net Ajax
Introduction To Asp.Net Ajax
 
Plone Interactivity
Plone InteractivityPlone Interactivity
Plone Interactivity
 
AWS Serverless Workshop
AWS Serverless WorkshopAWS Serverless Workshop
AWS Serverless Workshop
 
2 Asp Dot Net Ajax Extensions
2 Asp Dot Net Ajax Extensions2 Asp Dot Net Ajax Extensions
2 Asp Dot Net Ajax Extensions
 
Progressive web apps
Progressive web appsProgressive web apps
Progressive web apps
 
JSF Component Behaviors
JSF Component BehaviorsJSF Component Behaviors
JSF Component Behaviors
 
Asp.Net Ajax Component Development
Asp.Net Ajax Component DevelopmentAsp.Net Ajax Component Development
Asp.Net Ajax Component Development
 
Aspnet2 Overview
Aspnet2 OverviewAspnet2 Overview
Aspnet2 Overview
 
SXSW: Even Faster Web Sites
SXSW: Even Faster Web SitesSXSW: Even Faster Web Sites
SXSW: Even Faster Web Sites
 
Sxsw 20090314
Sxsw 20090314Sxsw 20090314
Sxsw 20090314
 
Google在Web前端方面的经验
Google在Web前端方面的经验Google在Web前端方面的经验
Google在Web前端方面的经验
 
Esposito Ajax Remote
Esposito Ajax RemoteEsposito Ajax Remote
Esposito Ajax Remote
 
Javazone 2010-lift-framework-public
Javazone 2010-lift-framework-publicJavazone 2010-lift-framework-public
Javazone 2010-lift-framework-public
 
ASP
ASPASP
ASP
 
Building Progressive Web Apps for Windows devices
Building Progressive Web Apps for Windows devicesBuilding Progressive Web Apps for Windows devices
Building Progressive Web Apps for Windows devices
 
Testable client side_mvc_apps_in_javascript
Testable client side_mvc_apps_in_javascriptTestable client side_mvc_apps_in_javascript
Testable client side_mvc_apps_in_javascript
 
Deep Dive On Serverless App Development
Deep Dive On Serverless App DevelopmentDeep Dive On Serverless App Development
Deep Dive On Serverless App Development
 
Deep Dive on Serverless App Development
Deep Dive on Serverless App DevelopmentDeep Dive on Serverless App Development
Deep Dive on Serverless App Development
 
Intro To Asp Net And Web Forms
Intro To Asp Net And Web FormsIntro To Asp Net And Web Forms
Intro To Asp Net And Web Forms
 
ASP.NET MVC introduction
ASP.NET MVC introductionASP.NET MVC introduction
ASP.NET MVC introduction
 

More from Quintagroup

Georgian OCDS API
Georgian OCDS APIGeorgian OCDS API
Georgian OCDS API
Quintagroup
 
Open procurement - Auction module
Open procurement - Auction moduleOpen procurement - Auction module
Open procurement - Auction module
Quintagroup
 
OpenProcurement toolkit
OpenProcurement toolkitOpenProcurement toolkit
OpenProcurement toolkit
Quintagroup
 
Open procurement italian
Open procurement italian Open procurement italian
Open procurement italian
Quintagroup
 
Plone SEO: Пошукова оптимізація Плон сайтів
Plone SEO: Пошукова оптимізація Плон сайтівPlone SEO: Пошукова оптимізація Плон сайтів
Plone SEO: Пошукова оптимізація Плон сайтів
Quintagroup
 
Plone 4. Що нового?
Plone 4. Що нового?Plone 4. Що нового?
Plone 4. Що нового?
Quintagroup
 
Calendar for Plone
Calendar for Plone Calendar for Plone
Calendar for Plone
Quintagroup
 
Packages, Releases, QGSkel
Packages, Releases, QGSkelPackages, Releases, QGSkel
Packages, Releases, QGSkel
Quintagroup
 
Integrator Series: Large files
Integrator Series: Large filesIntegrator Series: Large files
Integrator Series: Large files
Quintagroup
 
Python Objects
Python ObjectsPython Objects
Python Objects
Quintagroup
 
Python Evolution
Python EvolutionPython Evolution
Python Evolution
Quintagroup
 
Screen Player
Screen PlayerScreen Player
Screen Player
Quintagroup
 
GNU Screen
GNU ScreenGNU Screen
GNU Screen
Quintagroup
 
New in Plone 3.3. What to expect from Plone 4
New in Plone 3.3. What to expect from Plone 4New in Plone 3.3. What to expect from Plone 4
New in Plone 3.3. What to expect from Plone 4
Quintagroup
 
Overview of Plone-based websites for mobile devices.
Overview of Plone-based websites for mobile devices.Overview of Plone-based websites for mobile devices.
Overview of Plone-based websites for mobile devices.
Quintagroup
 
Ecommerce Solutions for Plone
Ecommerce Solutions for PloneEcommerce Solutions for Plone
Ecommerce Solutions for Plone
Quintagroup
 
Templating In Buildout
Templating In BuildoutTemplating In Buildout
Templating In Buildout
Quintagroup
 
Releasing and deploying python tools
Releasing and deploying python toolsReleasing and deploying python tools
Releasing and deploying python tools
Quintagroup
 
Zope 3 at Google App Engine
Zope 3 at Google App EngineZope 3 at Google App Engine
Zope 3 at Google App Engine
Quintagroup
 
Plone в урядових проектах
Plone в урядових проектахPlone в урядових проектах
Plone в урядових проектах
Quintagroup
 

More from Quintagroup (20)

Georgian OCDS API
Georgian OCDS APIGeorgian OCDS API
Georgian OCDS API
 
Open procurement - Auction module
Open procurement - Auction moduleOpen procurement - Auction module
Open procurement - Auction module
 
OpenProcurement toolkit
OpenProcurement toolkitOpenProcurement toolkit
OpenProcurement toolkit
 
Open procurement italian
Open procurement italian Open procurement italian
Open procurement italian
 
Plone SEO: Пошукова оптимізація Плон сайтів
Plone SEO: Пошукова оптимізація Плон сайтівPlone SEO: Пошукова оптимізація Плон сайтів
Plone SEO: Пошукова оптимізація Плон сайтів
 
Plone 4. Що нового?
Plone 4. Що нового?Plone 4. Що нового?
Plone 4. Що нового?
 
Calendar for Plone
Calendar for Plone Calendar for Plone
Calendar for Plone
 
Packages, Releases, QGSkel
Packages, Releases, QGSkelPackages, Releases, QGSkel
Packages, Releases, QGSkel
 
Integrator Series: Large files
Integrator Series: Large filesIntegrator Series: Large files
Integrator Series: Large files
 
Python Objects
Python ObjectsPython Objects
Python Objects
 
Python Evolution
Python EvolutionPython Evolution
Python Evolution
 
Screen Player
Screen PlayerScreen Player
Screen Player
 
GNU Screen
GNU ScreenGNU Screen
GNU Screen
 
New in Plone 3.3. What to expect from Plone 4
New in Plone 3.3. What to expect from Plone 4New in Plone 3.3. What to expect from Plone 4
New in Plone 3.3. What to expect from Plone 4
 
Overview of Plone-based websites for mobile devices.
Overview of Plone-based websites for mobile devices.Overview of Plone-based websites for mobile devices.
Overview of Plone-based websites for mobile devices.
 
Ecommerce Solutions for Plone
Ecommerce Solutions for PloneEcommerce Solutions for Plone
Ecommerce Solutions for Plone
 
Templating In Buildout
Templating In BuildoutTemplating In Buildout
Templating In Buildout
 
Releasing and deploying python tools
Releasing and deploying python toolsReleasing and deploying python tools
Releasing and deploying python tools
 
Zope 3 at Google App Engine
Zope 3 at Google App EngineZope 3 at Google App Engine
Zope 3 at Google App Engine
 
Plone в урядових проектах
Plone в урядових проектахPlone в урядових проектах
Plone в урядових проектах
 

Recently uploaded

Importance of Quality Transformations in VUCA World
Importance of Quality Transformations in VUCA WorldImportance of Quality Transformations in VUCA World
Importance of Quality Transformations in VUCA World
Ankur860831
 
Game Product Manager VS Product Manager.pdf
Game Product Manager VS Product Manager.pdfGame Product Manager VS Product Manager.pdf
Game Product Manager VS Product Manager.pdf
shohreesmaili1
 
The Strengths and Weaknesses of Each Zodiac Sign
The Strengths and Weaknesses of Each Zodiac SignThe Strengths and Weaknesses of Each Zodiac Sign
The Strengths and Weaknesses of Each Zodiac Sign
my Pandit
 
Credit Card Stats And Trends in 2024- Webpays
Credit Card Stats And Trends in 2024- WebpaysCredit Card Stats And Trends in 2024- Webpays
Credit Card Stats And Trends in 2024- Webpays
itio Innovex Pvt Ltv
 
Travel Tech Pitch Deck | ByeByeCity,com - Short Breaks Discovery & Booking Pl...
Travel Tech Pitch Deck | ByeByeCity,com - Short Breaks Discovery & Booking Pl...Travel Tech Pitch Deck | ByeByeCity,com - Short Breaks Discovery & Booking Pl...
Travel Tech Pitch Deck | ByeByeCity,com - Short Breaks Discovery & Booking Pl...
Rajesh Math
 
Family/Indoor Entertainment Centers Market: Regulation and Compliance Updates
Family/Indoor Entertainment Centers Market: Regulation and Compliance UpdatesFamily/Indoor Entertainment Centers Market: Regulation and Compliance Updates
Family/Indoor Entertainment Centers Market: Regulation and Compliance Updates
AishwaryaDoiphode3
 
Transforming the Future of Limo Services.pptx
Transforming the Future of Limo Services.pptxTransforming the Future of Limo Services.pptx
Transforming the Future of Limo Services.pptx
limocaptaincom
 
The AI-Powered Side Hustle Transforming Lives: A Dad's Journey to Financial S...
The AI-Powered Side Hustle Transforming Lives: A Dad's Journey to Financial S...The AI-Powered Side Hustle Transforming Lives: A Dad's Journey to Financial S...
The AI-Powered Side Hustle Transforming Lives: A Dad's Journey to Financial S...
SOFTTECHHUB
 
Mandated reporting powerpoint to help with understanding your role
Mandated reporting powerpoint to help with understanding your roleMandated reporting powerpoint to help with understanding your role
Mandated reporting powerpoint to help with understanding your role
khidalgo2
 
TALENT ACQUISITION AND MANAGEMENT LECTURE 2
TALENT ACQUISITION AND MANAGEMENT LECTURE 2TALENT ACQUISITION AND MANAGEMENT LECTURE 2
TALENT ACQUISITION AND MANAGEMENT LECTURE 2
projectseasy
 
Destor.One - Business Presentation Dec22.pdf
Destor.One - Business Presentation Dec22.pdfDestor.One - Business Presentation Dec22.pdf
Destor.One - Business Presentation Dec22.pdf
Thales Jacobi
 
Expert International Executive Recruiters for Global Expansion
Expert International Executive Recruiters for Global ExpansionExpert International Executive Recruiters for Global Expansion
Expert International Executive Recruiters for Global Expansion
Alliance Recruitment Agency - Staffing Agency In California, Esplanade Avenue, Pacifica, CA, USA
 
Abortion pills in Kuwait))௵+918133066128௹Get Cytotec Pills IN Kuwait City
Abortion pills in Kuwait))௵+918133066128௹Get Cytotec Pills IN Kuwait CityAbortion pills in Kuwait))௵+918133066128௹Get Cytotec Pills IN Kuwait City
Abortion pills in Kuwait))௵+918133066128௹Get Cytotec Pills IN Kuwait City
maishakhanam230
 
Discover who your target audience is and reach them
Discover who your target audience is and reach themDiscover who your target audience is and reach them
Discover who your target audience is and reach them
Quibble
 
PETAVIT SIP-05.pdfAAAAAAAAAAAAAAAAAAAAAAAAA
PETAVIT SIP-05.pdfAAAAAAAAAAAAAAAAAAAAAAAAAPETAVIT SIP-05.pdfAAAAAAAAAAAAAAAAAAAAAAAAA
PETAVIT SIP-05.pdfAAAAAAAAAAAAAAAAAAAAAAAAA
lawrenceads01
 
Satta matka guessing Kalyan result sattamatka
Satta matka guessing Kalyan result sattamatkaSatta matka guessing Kalyan result sattamatka
Satta matka guessing Kalyan result sattamatka
➑➌➋➑➒➎➑➑➊➍
 
A STUDY OF MUTUAL FUND OF BANK OF INDIA .pdf
A STUDY OF MUTUAL FUND  OF BANK OF INDIA .pdfA STUDY OF MUTUAL FUND  OF BANK OF INDIA .pdf
A STUDY OF MUTUAL FUND OF BANK OF INDIA .pdf
rsonics22
 
Business model Lean format - sample Feb23.pdf
Business model Lean format - sample Feb23.pdfBusiness model Lean format - sample Feb23.pdf
Business model Lean format - sample Feb23.pdf
Thales Jacobi
 
PETAVIT MICHAEL TAY.pdfAAAAAAAAAAAAAAAAAAAA
PETAVIT MICHAEL TAY.pdfAAAAAAAAAAAAAAAAAAAAPETAVIT MICHAEL TAY.pdfAAAAAAAAAAAAAAAAAAAA
PETAVIT MICHAEL TAY.pdfAAAAAAAAAAAAAAAAAAAA
lawrenceads01
 
Guide to Obtaining a Money Changer License in Singapore
Guide to Obtaining a Money Changer License in SingaporeGuide to Obtaining a Money Changer License in Singapore
Guide to Obtaining a Money Changer License in Singapore
Enterslice
 

Recently uploaded (20)

Importance of Quality Transformations in VUCA World
Importance of Quality Transformations in VUCA WorldImportance of Quality Transformations in VUCA World
Importance of Quality Transformations in VUCA World
 
Game Product Manager VS Product Manager.pdf
Game Product Manager VS Product Manager.pdfGame Product Manager VS Product Manager.pdf
Game Product Manager VS Product Manager.pdf
 
The Strengths and Weaknesses of Each Zodiac Sign
The Strengths and Weaknesses of Each Zodiac SignThe Strengths and Weaknesses of Each Zodiac Sign
The Strengths and Weaknesses of Each Zodiac Sign
 
Credit Card Stats And Trends in 2024- Webpays
Credit Card Stats And Trends in 2024- WebpaysCredit Card Stats And Trends in 2024- Webpays
Credit Card Stats And Trends in 2024- Webpays
 
Travel Tech Pitch Deck | ByeByeCity,com - Short Breaks Discovery & Booking Pl...
Travel Tech Pitch Deck | ByeByeCity,com - Short Breaks Discovery & Booking Pl...Travel Tech Pitch Deck | ByeByeCity,com - Short Breaks Discovery & Booking Pl...
Travel Tech Pitch Deck | ByeByeCity,com - Short Breaks Discovery & Booking Pl...
 
Family/Indoor Entertainment Centers Market: Regulation and Compliance Updates
Family/Indoor Entertainment Centers Market: Regulation and Compliance UpdatesFamily/Indoor Entertainment Centers Market: Regulation and Compliance Updates
Family/Indoor Entertainment Centers Market: Regulation and Compliance Updates
 
Transforming the Future of Limo Services.pptx
Transforming the Future of Limo Services.pptxTransforming the Future of Limo Services.pptx
Transforming the Future of Limo Services.pptx
 
The AI-Powered Side Hustle Transforming Lives: A Dad's Journey to Financial S...
The AI-Powered Side Hustle Transforming Lives: A Dad's Journey to Financial S...The AI-Powered Side Hustle Transforming Lives: A Dad's Journey to Financial S...
The AI-Powered Side Hustle Transforming Lives: A Dad's Journey to Financial S...
 
Mandated reporting powerpoint to help with understanding your role
Mandated reporting powerpoint to help with understanding your roleMandated reporting powerpoint to help with understanding your role
Mandated reporting powerpoint to help with understanding your role
 
TALENT ACQUISITION AND MANAGEMENT LECTURE 2
TALENT ACQUISITION AND MANAGEMENT LECTURE 2TALENT ACQUISITION AND MANAGEMENT LECTURE 2
TALENT ACQUISITION AND MANAGEMENT LECTURE 2
 
Destor.One - Business Presentation Dec22.pdf
Destor.One - Business Presentation Dec22.pdfDestor.One - Business Presentation Dec22.pdf
Destor.One - Business Presentation Dec22.pdf
 
Expert International Executive Recruiters for Global Expansion
Expert International Executive Recruiters for Global ExpansionExpert International Executive Recruiters for Global Expansion
Expert International Executive Recruiters for Global Expansion
 
Abortion pills in Kuwait))௵+918133066128௹Get Cytotec Pills IN Kuwait City
Abortion pills in Kuwait))௵+918133066128௹Get Cytotec Pills IN Kuwait CityAbortion pills in Kuwait))௵+918133066128௹Get Cytotec Pills IN Kuwait City
Abortion pills in Kuwait))௵+918133066128௹Get Cytotec Pills IN Kuwait City
 
Discover who your target audience is and reach them
Discover who your target audience is and reach themDiscover who your target audience is and reach them
Discover who your target audience is and reach them
 
PETAVIT SIP-05.pdfAAAAAAAAAAAAAAAAAAAAAAAAA
PETAVIT SIP-05.pdfAAAAAAAAAAAAAAAAAAAAAAAAAPETAVIT SIP-05.pdfAAAAAAAAAAAAAAAAAAAAAAAAA
PETAVIT SIP-05.pdfAAAAAAAAAAAAAAAAAAAAAAAAA
 
Satta matka guessing Kalyan result sattamatka
Satta matka guessing Kalyan result sattamatkaSatta matka guessing Kalyan result sattamatka
Satta matka guessing Kalyan result sattamatka
 
A STUDY OF MUTUAL FUND OF BANK OF INDIA .pdf
A STUDY OF MUTUAL FUND  OF BANK OF INDIA .pdfA STUDY OF MUTUAL FUND  OF BANK OF INDIA .pdf
A STUDY OF MUTUAL FUND OF BANK OF INDIA .pdf
 
Business model Lean format - sample Feb23.pdf
Business model Lean format - sample Feb23.pdfBusiness model Lean format - sample Feb23.pdf
Business model Lean format - sample Feb23.pdf
 
PETAVIT MICHAEL TAY.pdfAAAAAAAAAAAAAAAAAAAA
PETAVIT MICHAEL TAY.pdfAAAAAAAAAAAAAAAAAAAAPETAVIT MICHAEL TAY.pdfAAAAAAAAAAAAAAAAAAAA
PETAVIT MICHAEL TAY.pdfAAAAAAAAAAAAAAAAAAAA
 
Guide to Obtaining a Money Changer License in Singapore
Guide to Obtaining a Money Changer License in SingaporeGuide to Obtaining a Money Changer License in Singapore
Guide to Obtaining a Money Changer License in Singapore
 

Introduction to KSS

  • 1. KSS, Ajax with style Vitaliy Podoba, Developer © Quintagroup, 2008
  • 2. Table of contents What is it about? Why KSS? KSS. Quick Overview Short KSS Reference Advantages Drawbacks
  • 3. What is it about? KSS is an Ajax framework that allows UI development without writing any Javascript AJAX? http://www.adaptivepath.com/ideas/essays/archives/000385.php First Ajaxes: Google Suggest Yahoo News KSS – Kinetic Style Sheets
  • 4. The traditional model vs Ajax model
  • 5. Why KSS? Preserve from writing Javascript Overcome browser incompatibilities Avoid code duplication Thin browser client No Javascript on the page Provide server side for Zope and Plone
  • 6. No Javascript on the page <a href=&quot;#&quot; onclick=&quot;javascript:clicked();&quot;> Link</a>
  • 7. Quick Overview Power of Javascript, syntax of CSS KSS Environment KSS Architecture Kinetic Style Sheets Syntax Server Side Tying it all together
  • 8. KSS Environment Browser compatibility Firefox Internet Explorer Opera Konqueror Safari Mozilla Supported server platforms Zope 2.10, 2.11 Zope 3 Grok Plone 3.0 Pylons Django
  • 10. KSS Syntax #kss-spinner:spinneron { action-client: setStyle; setStyle-name: display; setStyle-value: block; } #kss-spinner:spinneroff { action-client: setStyle; setStyle-name: display; setStyle-value: none; }
  • 11. KSS Syntax a:click { action-client: alert; alert-message: &quot;Clicked&quot;; }
  • 12. KSS Syntax a:click { css selector : event action-client: alert; client action 'alert' alert-message: &quot;Clicked&quot;; parameter for 'alert' }
  • 13. KSS Syntax a:click { evt-click-preventdefault: true; parameter for event action-client: alert; alert-message: &quot;Clicked&quot;; }
  • 14. KSS Syntax a:click { evt-click-preventdefault: true; action-client: alert; alert-message: &quot;Clicked&quot;; action-server: add; call server action add-url: nodeAttr('href'); parameter for 'add' }
  • 15. Server Side kss.core plone.app.kss
  • 16. Server Side : Template <a href=&quot;some/url&quot; class=&quot;replaceHTML&quot;>Update content</a> <div id=&quot;kss-container&quot;> I need to be updated! </div>
  • 17. Server Side: KSS a.replaceHTML:click { evt-click-preventdefault: True; action-server: response ; }
  • 18. Server Side : Script # response.py script # import Through-The-Web(TTW) API from kss.core.ttwapi import startKSSCommands, getKSSCommandSet, renderKSSCommands # start a view for commands startKSSCommands(context, context.REQUEST) # add a command core = getKSSCommandSet('core') core.replaceInnerHTML('#kss-container', '<h1>We did it!</h1>') # render the commands return renderKSSCommands()
  • 19. Server Side : Response <?xml version=&quot;1.0&quot; ?> <kukit xmlns=&quot;http://www.kukit.org/commands/1.1&quot; xmlns:tal=&quot;http://xml.zope.org/namespaces/tal&quot; xmlns:metal=&quot;http://xml.zope.org/namespaces/metal&quot;> <commands> <command selector=&quot;#kss-container&quot; name=&quot;replaceInnerHTML&quot; selectorType=&quot;&quot;> <param name=&quot;html&quot;><h1>We did it!</h1></param> </command> </commands> </kukit>
  • 20. Server Side: Browser View from kss.core import KSSView, kssaction class DemoView(KSSView): @kssaction def response(self): core = self.getCommandSet('core') core.replaceInnerHTML('#kss-container', '<h1>We did it!</h1>') demoview.py
  • 21. Server Side: Browser View <browser:page for=&quot;plone.app.kss.interfaces.IPortalObject&quot; class=&quot;.demoview.DemoView&quot; attribute=&quot;response&quot; name=&quot;response&quot; permission=&quot;zope2.View&quot; />
  • 22. Server Side: KSS Action a.replaceHTML:click { evt-click-preventdefault: True; action-server: response ; }
  • 23. Server Side: KSS Action a.replaceHTML:click { evt-click-preventdefault: True; action-server: response ; action-error: alert; alert-message: &quot;Error on server&quot;; }
  • 24. Tying it all together Write kss source file Register kss source file with portal_kss Write server side Extend kss with your own plugins: client actions command actions parameter providers event types selector types
  • 25. Short KSS Reference Events Actions Parameter Providers Command Sets
  • 26. Basic Events click dblclick load focus blur
  • 27. Mouse Events mousedown mouseup mouseover mouseout
  • 28. Form Events change select submit
  • 29. Automatic Events timeout evt-timeout-delay evt-timeout-repeat
  • 30. Changing HTML Actions replaceInnerHTML insertHTMLAfter deleteNode
  • 31. Changing Attributes Actions setAttribute setKssAttribute
  • 34. Parameter Providers formVar(formname, varname) currentFormVar(varname) nodeAttr(attrname) nodeContent()
  • 35. Command Sets core zope plone plone-legacy effects dad...
  • 36. Advantages See 'Why KSS?' section Work can be easily divided between different specialists
  • 37. Drawbacks Writing javascript plugins Too many rules can freeze page loading
  • 38. Links KSS Site http://kssproject.org AJAX http://www.adaptivepath.com/publications/essays/archives/000385.php kss.core repository http://codespeak.net/svn/kukit/kss.core/trunk plone.app.kss repository https://svn.plone.org/svn/plone/plone.app.kss/trunk