SlideShare a Scribd company logo
1 of 144
Download to read offline
NSYSU MIS
          2009/3/5




josephj
Hi!    josephj




• 2.5   F2E

• 0.5         Evangelist

•                    RD

                                          @josephj6802
                                     http://josephj.com
                                josephj6802@gmail.com
2008.5
Question 1
Open APIs
   Yahoo!
Open API




  AJAX API




Open API
Yahoo!
            Format
         Flickr
http://www.flickr.com/photos/tags/
http://api.flickr.com/services/feeds/photos_public.gne?
      tags=         &lang=en-us&format=rss_200
http://api.flickr.com/services/feeds/photos_public.gne?
        tags=        &lang=en-us&format=php
<script src=”http://api.flickr.com/services/feeds/photos_public.gne?
              &format=json&jsoncallback=getFlickrData ”></script>
tags=
http://api.flickr.com/services/feeds/photos_public.gne?
            tags=twopenhack08&format=lol
API   Feed
Schema
Service   ...
JavaScript   HTML ...
Schema
 Code
Pipes   Remix Feed
RSS Feed




Union
...   CLI
YQL
Yahoo! Query Language
Yahoo!
Question 2
YUI Library
       Web2.0
UI
                        UI    YUI    UI

        Button    Def. But.


         Menu
Label

         Text Field
Label


        Label

        Label


  Text Area




         click me
YUI
Library
Developer Network Home   Help                                                                                                               Site Search




 Design Pattern Library
 Yahoo! Developer Network > Design Pattern Library > Auto Complete


Auto Complete
                                                                                                           QUICK JUMP
 Problem Summary
                                                                                                                Solution
 The user needs to enter an item into a text box which could ambiguous or hard to
                                                                                                                Rationale
 remember and therefore has the potential to be mis-typed.
                                                                                                                Accessibility

 EXAMPLE:
                                                                                                           RELATED PATTERNS
                                                                                                                Calendar Picker

                                                                                                           AS USED ON YAHOO!
                                                                                                                Yahoo! Mail Beta
                                                                                                                Yahoo! Maps Beta
                                                                                                                Yahoo! My Web 2

                                                                                                           BLOG

                                                                                                                Blog Article

                                                                                                           Y! UI CODE EXAMPLES

                                                                                                                Auto Complete
                                                                                                                Component
 Auto completion of contacts in Yahoo! Mail Beta                                                                Y! Search (JSON)
                                                                                                                Y! Search (XML)
 Use When                                                                                                       In-Memory (array)
                                                                                                                In-Memory (function)
   The suggestions can be pulled from a manageable set of data.
                                                                                                                Flickr (XML)
   The input item can be entered in multiple ways.                                                              Flat data
                                                                                                                Playground
   The input item can be matched with a specific data item in the system.
   Speed and accuracy of entry is an important goal.
                                                                                                           Show with revisions
   The total number of items would be too large or inconvenient for displaying in a
   standard drop down box.



Solution                                                                                                   This work is licensed under a
                                                                                                           Creative Commons Attribution 2.5
                                                                                                           License.
 Layout

   Use a standard text box for input.
   Label the text box to match the user's expection of what field will be searched against.

 Interaction

   As the user types, display a list of suggested items that most closely match what the
   user has typed. Continue to narrow or broaden the list of suggested items based on the
   user's input.
   Display the suggested items list in a drop down box directly underneath the text box.
   The suggested items list may be based on the complete set of data or more narrowly
   based on other criteria such as each item's frequency of use.
   When available, show multiple fields of information for each suggested item. In the
   Yahoo! Mail example above, two fields are presented: the contact's full name and the
   contact's email address.
   Highlight the closest matching item within the suggested items list.
           Show the matched item as first in the list.
           Highlight the background of the matched item.
           When multiple fields are shown for each suggested item the match may occur
           with the initial characters of any of the fields presented.
   For each suggested item in the suggest items list show the characters that exactly
   match the user's input. When multiple fields are shown in a suggested item the
   matching characters may appear in any of the fields presented. In the example below,
   the characters 'Yu' have been typed by the user. The match is on three items. Notice
   that the first item matched on the contact's email address '<yuiblogger.com>' whereas
   the second and third items are matched on the contact's name (e.g., 'Yusef Jones'.)




   Allow the user to delete a character of input and display the previous suggested items
   list.
   Allow the user to complete the input field by pressing the Tab key or Enter; key. The
   current matched item in the suggested items list will be accepted as the value for the
   input field.
   Allow the user to optionally highlight an item of their choice from the suggested item list
   with the mouse or with the up and down arrow keys.
   Allow the user to cancel the suggested items list by pressing the Esc key. The drop
   down list will close. Subsequently pressing the Tab key or Enter key will accept the
   value from the input field. However, typing more characters after hitting the Esc key will
   restart the auto completion behavior displaying the suggested items list.
   If multiple input items are allowed in a single input field, allow the user to use the
   Comma key to separate each input item.
           Pressing the comma key will complete an individual item match.
           The auto complete behavior restarts when the user begins typing characters for
           the next input item.


Rationale
   Reducing the number of keystrokes allows for faster user input.
   Showing additional formatting information in the suggested items list (like the email
   address in the example above) removes ambiguity.
   Continual feedback helps the user narrow in on the correct choice.


Accessibility
   Label the text box to match the user's expection of what field will be searched against.
   Allow the user to highlight a desired match either using a mouse or navigating to it with
   the up or down arrow keys.
   Allow the user to complete the form by pressing the Tab or Enter keys.
   Allow the user to cancel suggestions by pressing the Esc key.
   Allow the input field to receive keyboard focus by pressing the Tab key.
   Once the edit field is in focus make sure that the focus stays in the edit field during
   autocomplete.
   Do not send any page refreshes when updating the field (page refreshes will signal
   assistive technology to start reading the page again.)
   The insertion cursor should move as the left/right arrow keys are pressed in the text
   field.




                                           Copyright © 2005-2007 Yahoo! Inc. All rights reserved.
                                     Privacy Policy - Terms of Service - Copyright Policy - Job Openings
YUI   300
YUI   Web
      OSDC
Carousel
+
YUI
YUI
http://blogs.computerworld.com/nytimes_iphone_browser_marketshare



         iPhone                                  YUI
http://marketshare.hitslink.com/report.aspx?sample=21&qprid=43&qpcustom=Chrome+0.2




    Google Chrome                                                              ;)
Rich Text Editor
Accessbility
YUI
1. HTML
 Yahoo!
<div id=”nav”>
         <div class=”hd”>
             <h2>    </h2>
         </div>
         <div class=”bd”>
ID                                .hd, .bd, .ft
             <p>    </p>          header body footer
         </div>
         <div class=”ft”>
             <a href=”...”>   ... </a>
         </div>
     </div>
yhtw_masthead




ykpmt

ykpsb


ykpimt                   ykpadv




ykpimqa         ykpimr




                         ykpug


ykpiht          ykpiht
ykpsb


• ykp      +    prefix
• sb    search box
•       inc/search_box.php
id          CSS              namespace
form                               .extra



                                 [CSS]
[HTML]
                                 <style>
<div id=”ykpsb”>
                                 #ykpsb {
    <div class=”bd clearfix”>
                                     margin-bottom:10px;
        <form ...>
                                 }
        ...
                                 #ykpsb form {
        </form>
                                     float:left;
        <div class=”extra”>
                                 }
        ...
                                 #ykpsb .extra {
        </div>
                                     float:right;
    </div>
                                 }
</div>
                                 </style>
1        HTML                            3 Mins
http://josephj.com/training/yzu/html-module.html

           1.                                        id
           2.       hd, bd, ft      class
           3.                                CSS

                                   font:bold 16px;


                background:#ffe;
                                             color:#369;
2. YUI Grids
   DIV + CSS
950px




                   240px




50%, 50%
YUI Grid Builder




http://developer.yahoo.com/yui/grids/builder/
3. YUI AJAX
               Web 2.0
http://josephj.com/training/yzu/yui-ajax.html
YUI AJAX
YUI            AJAX             Connection Manager


                                          2.       Request

                      1.        Request

                                               A
                           3.
           A

      4.
YUI AJAX

AJAX
                                      2.       Request

          1.   JavaScript   Request

                                           A
                   3.
     A

4.
3     YUI Connection
http://josephj.com/training/yzu/yui-ajax.html
4. YUI Get Utility
  http://josephj.com/training/yzu/yui-get.html
<script src=”
    http://api.flickr.com/services/feeds/photos_public.gne?tags=yzu&lang=en-us&format=json“></script>
4     YUI Get
http://josephj.com/training/yzu/yui-get.html
5. YUI
5    YUI
http://josephj.com/training/yzu/yui-menu.html

  1.    new
     YAHOO.widget.MenuBar([         id]);
            YUI
  2.             render()
5   YUI
http://josephj.com/training/yzu/yui-menu.html



                          (true   false)
  autosubmenudisplay


      hidedelay
                             n

                          (true   false)
       lazyload
6. YUI
         UI
YUI Button
HTML

            YUI Button
6     YUI
http://josephj.com/training/yzu/yui-button.html

   1.     new YAHOO.widget.Button([
        id]);
7. YUI
  Web 2.0
YUI Container
                       YAHOO.widget.Dialog

YAHOO.widget.Panel




YAHOO.widget.Panel

                     YAHOO.widget.SimpleDialog
7        YUI
http://josephj.com/training/yzu/yui-panel.html
  1.     var oPanel = new YAHOO.widget.Panel([       id], [   ]);
       #panel
  2. oPanel.render(document.body)             append
  3. oButton.addListener(‘click’, onButtonClick)
     onButtonClick       oPanel.show();
7        YUI
http://josephj.com/training/yzu/yui-panel.html

          close
     fixedcenter
          modal
         underlay             shadow’, ‘matte’
          visible
          width

     {        1:        1,      2:           2}
YUI Compressor
YUI
YUI
YUI   BSD License
Open Source ?
• Fasten Improvement
• Fun
• Innovation
• Recruiting
•
•                      YUI Contributor
jQuery   Prototype   Dojo   GWT
•   JavaScript
•
•       JavaScript
•
•
•           QA
•
IDE
      ...
IDE   Aptana
no.
•

    • ASP, PHP, RoR, Python, JAVA...

•

•        3rd Party
Open at Yahoo!
...
                                    Google
Maps




      ...


                               Yahoo! Map



            http://www.bnext.com.tw/LocalityView_6980
Yahoo!   3rd Party
Social
ilove7388



            ... orz...
ilove7388
Social =
+
Social
Social Platform
Following
Follower
Social   Open Social
2007/5/24
Facebook
                              F8




    http://www.flickr.com/photos/kk/2327597086/
Social
                 Facebook


         FQL FBML FBJS
..
OpenSocial   Social Applications
    API Spec
OpenSocial
Yahoo!   OpenSocial
10/17   Yahoo! Profile
Social Directory
                                                           Profile


                                     Contacts
                                                     Address Book Messenger
                                      Relationship

                                     User Status


                                     Updates
                                                     /


http://developer.yahoo.com/social/
Twitter
                     Twitter   ?




Yahoo! Messenger
            Updates
MyBlogLog         Twitter
                         Y!M




http://manage.community.yahoo.com/
vitality/
/   /
Next?
Application Platform
            YAP
Yahoo!
Mail/Contact API   Local




Yahoo!
Yahoo!
Pat Jameson




              Pat Jameson
Pat Jameson
Y!Sports




Yahoo!              +
YAP Developer Studio
   YAP
View
                         Small View        Application
                                            Lightbox View




                                                            Sever-side Script
Application   760px                                         YAP
                                Web Server
                                                     User           App

                                                               HTML YML
Small View    300px+   250px      Yahoo!            User            App
                                                            Application
App
HTML   CSS   JavaScript YML YQL
HTML + CSS + JavaScript
YAP    YML YQL
YML     Yahoo! Markup Language



                   Text



            <!--             -->
            <yml:friend-selector uid=quot;viewerquot;/>


      YML          UI
YAP   SDK
PHP SDK



          Text




OAuth            YQL   Social API
Connection
Social Networking
Yahoo!
         Cool
YAP     Open

      • OpenSocial
      • Hadoop
      • OpenID
      • oAuth
BluePrint
SearchMonkey
Fire Eagle
OpenID      SSO




   BBAuth         Retire   ...
Quick Summary

• Open APIs   Yahoo!
• Social
• YAP Y
  Yahoo!               Powerful
Questions?

http://www.flickr.com/photos/phploveme/2847931240/

More Related Content

Viewers also liked

Debugging - 前端工程開發實務訓練
 Debugging - 前端工程開發實務訓練 Debugging - 前端工程開發實務訓練
Debugging - 前端工程開發實務訓練
Joseph Chiang
 
YUI 教學 - 前端工程開發實務訓練
YUI 教學 - 前端工程開發實務訓練YUI 教學 - 前端工程開發實務訓練
YUI 教學 - 前端工程開發實務訓練
Joseph Chiang
 
Yahoo! 奇摩關鍵字廣告聯播網
Yahoo! 奇摩關鍵字廣告聯播網Yahoo! 奇摩關鍵字廣告聯播網
Yahoo! 奇摩關鍵字廣告聯播網
Joseph Chiang
 
Node.js 入門 - 前端工程開發實務訓練
Node.js 入門 - 前端工程開發實務訓練Node.js 入門 - 前端工程開發實務訓練
Node.js 入門 - 前端工程開發實務訓練
Joseph Chiang
 
Javascript 入門 - 前端工程開發實務訓練
Javascript 入門 - 前端工程開發實務訓練Javascript 入門 - 前端工程開發實務訓練
Javascript 入門 - 前端工程開發實務訓練
Joseph Chiang
 

Viewers also liked (13)

Semantic HTML Basic
Semantic HTML BasicSemantic HTML Basic
Semantic HTML Basic
 
BBAuth
BBAuthBBAuth
BBAuth
 
YUI is Sexy (for JSDC.tw)
YUI is Sexy (for JSDC.tw)YUI is Sexy (for JSDC.tw)
YUI is Sexy (for JSDC.tw)
 
From Hacker to Programmer (w/ Webpack, Babel and React)
From Hacker to Programmer (w/ Webpack, Babel and React)From Hacker to Programmer (w/ Webpack, Babel and React)
From Hacker to Programmer (w/ Webpack, Babel and React)
 
Git - The Social Coding System
Git - The Social Coding SystemGit - The Social Coding System
Git - The Social Coding System
 
Debugging - 前端工程開發實務訓練
 Debugging - 前端工程開發實務訓練 Debugging - 前端工程開發實務訓練
Debugging - 前端工程開發實務訓練
 
Automatic Functional Testing with Selenium and SauceLabs
Automatic Functional Testing with Selenium and SauceLabsAutomatic Functional Testing with Selenium and SauceLabs
Automatic Functional Testing with Selenium and SauceLabs
 
YUI 教學 - 前端工程開發實務訓練
YUI 教學 - 前端工程開發實務訓練YUI 教學 - 前端工程開發實務訓練
YUI 教學 - 前端工程開發實務訓練
 
Yahoo! 奇摩關鍵字廣告聯播網
Yahoo! 奇摩關鍵字廣告聯播網Yahoo! 奇摩關鍵字廣告聯播網
Yahoo! 奇摩關鍵字廣告聯播網
 
Node.js 入門 - 前端工程開發實務訓練
Node.js 入門 - 前端工程開發實務訓練Node.js 入門 - 前端工程開發實務訓練
Node.js 入門 - 前端工程開發實務訓練
 
JavaScript Promise
JavaScript PromiseJavaScript Promise
JavaScript Promise
 
Javascript 入門 - 前端工程開發實務訓練
Javascript 入門 - 前端工程開發實務訓練Javascript 入門 - 前端工程開發實務訓練
Javascript 入門 - 前端工程開發實務訓練
 
YUI is Sexy - 使用 YUI 作為開發基礎
YUI is Sexy - 使用 YUI 作為開發基礎YUI is Sexy - 使用 YUI 作為開發基礎
YUI is Sexy - 使用 YUI 作為開發基礎
 

Similar to Yahoo! Open Technologies @NCU

Xm Lmessagingwith Soap
Xm Lmessagingwith SoapXm Lmessagingwith Soap
Xm Lmessagingwith Soap
LiquidHub
 
Xml Messaging With Soap
Xml Messaging With SoapXml Messaging With Soap
Xml Messaging With Soap
AkramWaseem
 
Xml messaging with soap
Xml messaging with soapXml messaging with soap
Xml messaging with soap
Johnny Pork
 

Similar to Yahoo! Open Technologies @NCU (20)

Search Engines and Flash: Secrets, Tricks, and Black Magic
Search Engines and Flash: Secrets, Tricks, and Black MagicSearch Engines and Flash: Secrets, Tricks, and Black Magic
Search Engines and Flash: Secrets, Tricks, and Black Magic
 
FlexNet Delivery and FlexNet Operations On-Demand Tips & Tricks
FlexNet Delivery and FlexNet Operations On-Demand Tips & TricksFlexNet Delivery and FlexNet Operations On-Demand Tips & Tricks
FlexNet Delivery and FlexNet Operations On-Demand Tips & Tricks
 
TAO DAYS - Development of an advanced item (IT Session)
TAO DAYS - Development of an advanced item (IT Session)TAO DAYS - Development of an advanced item (IT Session)
TAO DAYS - Development of an advanced item (IT Session)
 
Example Of Import Java
Example Of Import JavaExample Of Import Java
Example Of Import Java
 
Xm Lmessagingwith Soap
Xm Lmessagingwith SoapXm Lmessagingwith Soap
Xm Lmessagingwith Soap
 
Yahoo! Application Platform Technical Deep Dive
Yahoo! Application Platform Technical Deep DiveYahoo! Application Platform Technical Deep Dive
Yahoo! Application Platform Technical Deep Dive
 
Raptor 2
Raptor 2Raptor 2
Raptor 2
 
From YUI3 to K2
From YUI3 to K2From YUI3 to K2
From YUI3 to K2
 
Xml messaging with soap
Xml messaging with soapXml messaging with soap
Xml messaging with soap
 
Xml Messaging With Soap
Xml Messaging With SoapXml Messaging With Soap
Xml Messaging With Soap
 
Xml messaging with soap
Xml messaging with soapXml messaging with soap
Xml messaging with soap
 
Xml+messaging+with+soap
Xml+messaging+with+soapXml+messaging+with+soap
Xml+messaging+with+soap
 
API Design & Moving from Junior to Senior Developer
API Design & Moving from Junior to Senior DeveloperAPI Design & Moving from Junior to Senior Developer
API Design & Moving from Junior to Senior Developer
 
Rewriting a Plugin Architecture 3 Times to Harness the API Economy
Rewriting a Plugin Architecture 3 Times to Harness the API EconomyRewriting a Plugin Architecture 3 Times to Harness the API Economy
Rewriting a Plugin Architecture 3 Times to Harness the API Economy
 
Ieml dictionary
Ieml dictionaryIeml dictionary
Ieml dictionary
 
PRG 421 version 10 Entire Course
PRG 421 version 10 Entire CoursePRG 421 version 10 Entire Course
PRG 421 version 10 Entire Course
 
Roma introduction and concepts
Roma introduction and conceptsRoma introduction and concepts
Roma introduction and concepts
 
jQuery Tips Tricks Trivia
jQuery Tips Tricks TriviajQuery Tips Tricks Trivia
jQuery Tips Tricks Trivia
 
applet.pptx
applet.pptxapplet.pptx
applet.pptx
 
RomaFramework Tutorial Basics
RomaFramework Tutorial BasicsRomaFramework Tutorial Basics
RomaFramework Tutorial Basics
 

More from Joseph Chiang

前端的未來 - 前端工程實務訓練
前端的未來 - 前端工程實務訓練前端的未來 - 前端工程實務訓練
前端的未來 - 前端工程實務訓練
Joseph Chiang
 
Performance 入門 - 前端工程開發實務訓練
Performance 入門 - 前端工程開發實務訓練Performance 入門 - 前端工程開發實務訓練
Performance 入門 - 前端工程開發實務訓練
Joseph Chiang
 
前端工程開發實務訓練
前端工程開發實務訓練前端工程開發實務訓練
前端工程開發實務訓練
Joseph Chiang
 
CSS 入門 - 前端工程開發實務訓練
CSS 入門 - 前端工程開發實務訓練CSS 入門 - 前端工程開發實務訓練
CSS 入門 - 前端工程開發實務訓練
Joseph Chiang
 
HTML 入門 - 前端工程開發實務訓練
HTML 入門 - 前端工程開發實務訓練HTML 入門 - 前端工程開發實務訓練
HTML 入門 - 前端工程開發實務訓練
Joseph Chiang
 
建立前端開發團隊 - 2011 中華電信訓練所版
建立前端開發團隊 - 2011 中華電信訓練所版建立前端開發團隊 - 2011 中華電信訓練所版
建立前端開發團隊 - 2011 中華電信訓練所版
Joseph Chiang
 
Front-end Modular & Autmomated Development
Front-end Modular & Autmomated Development Front-end Modular & Autmomated Development
Front-end Modular & Autmomated Development
Joseph Chiang
 
Hack Day Sharing at D-Link
Hack Day Sharing at D-LinkHack Day Sharing at D-Link
Hack Day Sharing at D-Link
Joseph Chiang
 

More from Joseph Chiang (19)

不断归零的前端人生 - 2016 中国软件开发者大会
不断归零的前端人生 - 2016 中国软件开发者大会不断归零的前端人生 - 2016 中国软件开发者大会
不断归零的前端人生 - 2016 中国软件开发者大会
 
Let's Redux!
Let's Redux!Let's Redux!
Let's Redux!
 
F2E for Enterprise
F2E for EnterpriseF2E for Enterprise
F2E for Enterprise
 
JavaScript Code Quality
JavaScript Code QualityJavaScript Code Quality
JavaScript Code Quality
 
F2E, the Keystone
F2E, the KeystoneF2E, the Keystone
F2E, the Keystone
 
前端的未來 - 前端工程實務訓練
前端的未來 - 前端工程實務訓練前端的未來 - 前端工程實務訓練
前端的未來 - 前端工程實務訓練
 
Performance 入門 - 前端工程開發實務訓練
Performance 入門 - 前端工程開發實務訓練Performance 入門 - 前端工程開發實務訓練
Performance 入門 - 前端工程開發實務訓練
 
前端工程開發實務訓練
前端工程開發實務訓練前端工程開發實務訓練
前端工程開發實務訓練
 
CSS 入門 - 前端工程開發實務訓練
CSS 入門 - 前端工程開發實務訓練CSS 入門 - 前端工程開發實務訓練
CSS 入門 - 前端工程開發實務訓練
 
HTML 入門 - 前端工程開發實務訓練
HTML 入門 - 前端工程開發實務訓練HTML 入門 - 前端工程開發實務訓練
HTML 入門 - 前端工程開發實務訓練
 
miiiCasa is Fun
miiiCasa is FunmiiiCasa is Fun
miiiCasa is Fun
 
分享無名小站 API
分享無名小站 API分享無名小站 API
分享無名小站 API
 
yui3 is Sexy - 使用 YUI 3 的 Sexy Part !
yui3 is Sexy - 使用 YUI 3 的 Sexy Part !yui3 is Sexy - 使用 YUI 3 的 Sexy Part !
yui3 is Sexy - 使用 YUI 3 的 Sexy Part !
 
建立前端開發團隊 - 2011 中華電信訓練所版
建立前端開發團隊 - 2011 中華電信訓練所版建立前端開發團隊 - 2011 中華電信訓練所版
建立前端開發團隊 - 2011 中華電信訓練所版
 
不用不可之 Fiddler Debugging Proxy!
不用不可之 Fiddler Debugging Proxy!不用不可之 Fiddler Debugging Proxy!
不用不可之 Fiddler Debugging Proxy!
 
Open platform
Open platformOpen platform
Open platform
 
Front-end Modular & Autmomated Development
Front-end Modular & Autmomated Development Front-end Modular & Autmomated Development
Front-end Modular & Autmomated Development
 
建立前端开发团队 (Front-end Development Environment)
建立前端开发团队 (Front-end Development Environment)建立前端开发团队 (Front-end Development Environment)
建立前端开发团队 (Front-end Development Environment)
 
Hack Day Sharing at D-Link
Hack Day Sharing at D-LinkHack Day Sharing at D-Link
Hack Day Sharing at D-Link
 

Yahoo! Open Technologies @NCU

  • 1. NSYSU MIS 2009/3/5 josephj
  • 2. Hi! josephj • 2.5 F2E • 0.5 Evangelist • RD @josephj6802 http://josephj.com josephj6802@gmail.com
  • 5. Open APIs Yahoo!
  • 6. Open API AJAX API Open API
  • 7. Yahoo! Format Flickr
  • 11. <script src=”http://api.flickr.com/services/feeds/photos_public.gne? &format=json&jsoncallback=getFlickrData ”></script> tags=
  • 13.
  • 14. API Feed Schema
  • 15. Service ...
  • 16. JavaScript HTML ...
  • 18. Pipes Remix Feed
  • 20. ... CLI
  • 22.
  • 25. YUI Library Web2.0
  • 26. UI UI YUI UI Button Def. But. Menu Label Text Field Label Label Label Text Area click me
  • 27. YUI
  • 28.
  • 30. Developer Network Home Help Site Search Design Pattern Library Yahoo! Developer Network > Design Pattern Library > Auto Complete Auto Complete QUICK JUMP Problem Summary Solution The user needs to enter an item into a text box which could ambiguous or hard to Rationale remember and therefore has the potential to be mis-typed. Accessibility EXAMPLE: RELATED PATTERNS Calendar Picker AS USED ON YAHOO! Yahoo! Mail Beta Yahoo! Maps Beta Yahoo! My Web 2 BLOG Blog Article Y! UI CODE EXAMPLES Auto Complete Component Auto completion of contacts in Yahoo! Mail Beta Y! Search (JSON) Y! Search (XML) Use When In-Memory (array) In-Memory (function) The suggestions can be pulled from a manageable set of data. Flickr (XML) The input item can be entered in multiple ways. Flat data Playground The input item can be matched with a specific data item in the system. Speed and accuracy of entry is an important goal. Show with revisions The total number of items would be too large or inconvenient for displaying in a standard drop down box. Solution This work is licensed under a Creative Commons Attribution 2.5 License. Layout Use a standard text box for input. Label the text box to match the user's expection of what field will be searched against. Interaction As the user types, display a list of suggested items that most closely match what the user has typed. Continue to narrow or broaden the list of suggested items based on the user's input. Display the suggested items list in a drop down box directly underneath the text box. The suggested items list may be based on the complete set of data or more narrowly based on other criteria such as each item's frequency of use. When available, show multiple fields of information for each suggested item. In the Yahoo! Mail example above, two fields are presented: the contact's full name and the contact's email address. Highlight the closest matching item within the suggested items list. Show the matched item as first in the list. Highlight the background of the matched item. When multiple fields are shown for each suggested item the match may occur with the initial characters of any of the fields presented. For each suggested item in the suggest items list show the characters that exactly match the user's input. When multiple fields are shown in a suggested item the matching characters may appear in any of the fields presented. In the example below, the characters 'Yu' have been typed by the user. The match is on three items. Notice that the first item matched on the contact's email address '<yuiblogger.com>' whereas the second and third items are matched on the contact's name (e.g., 'Yusef Jones'.) Allow the user to delete a character of input and display the previous suggested items list. Allow the user to complete the input field by pressing the Tab key or Enter; key. The current matched item in the suggested items list will be accepted as the value for the input field. Allow the user to optionally highlight an item of their choice from the suggested item list with the mouse or with the up and down arrow keys. Allow the user to cancel the suggested items list by pressing the Esc key. The drop down list will close. Subsequently pressing the Tab key or Enter key will accept the value from the input field. However, typing more characters after hitting the Esc key will restart the auto completion behavior displaying the suggested items list. If multiple input items are allowed in a single input field, allow the user to use the Comma key to separate each input item. Pressing the comma key will complete an individual item match. The auto complete behavior restarts when the user begins typing characters for the next input item. Rationale Reducing the number of keystrokes allows for faster user input. Showing additional formatting information in the suggested items list (like the email address in the example above) removes ambiguity. Continual feedback helps the user narrow in on the correct choice. Accessibility Label the text box to match the user's expection of what field will be searched against. Allow the user to highlight a desired match either using a mouse or navigating to it with the up or down arrow keys. Allow the user to complete the form by pressing the Tab or Enter keys. Allow the user to cancel suggestions by pressing the Esc key. Allow the input field to receive keyboard focus by pressing the Tab key. Once the edit field is in focus make sure that the focus stays in the edit field during autocomplete. Do not send any page refreshes when updating the field (page refreshes will signal assistive technology to start reading the page again.) The insertion cursor should move as the left/right arrow keys are pressed in the text field. Copyright © 2005-2007 Yahoo! Inc. All rights reserved. Privacy Policy - Terms of Service - Copyright Policy - Job Openings
  • 31. YUI 300
  • 32.
  • 33.
  • 34.
  • 35.
  • 36. YUI Web OSDC
  • 38.
  • 39. +
  • 40. YUI
  • 41.
  • 42.
  • 43.
  • 44. YUI
  • 48.
  • 49.
  • 51. YUI
  • 53.
  • 54. <div id=”nav”> <div class=”hd”> <h2> </h2> </div> <div class=”bd”> ID .hd, .bd, .ft <p> </p> header body footer </div> <div class=”ft”> <a href=”...”> ... </a> </div> </div>
  • 55. yhtw_masthead ykpmt ykpsb ykpimt ykpadv ykpimqa ykpimr ykpug ykpiht ykpiht
  • 56. ykpsb • ykp + prefix • sb search box • inc/search_box.php
  • 57. id CSS namespace form .extra [CSS] [HTML] <style> <div id=”ykpsb”> #ykpsb { <div class=”bd clearfix”> margin-bottom:10px; <form ...> } ... #ykpsb form { </form> float:left; <div class=”extra”> } ... #ykpsb .extra { </div> float:right; </div> } </div> </style>
  • 58. 1 HTML 3 Mins http://josephj.com/training/yzu/html-module.html 1. id 2. hd, bd, ft class 3. CSS font:bold 16px; background:#ffe; color:#369;
  • 59. 2. YUI Grids DIV + CSS
  • 60. 950px 240px 50%, 50%
  • 61.
  • 62.
  • 64. 3. YUI AJAX Web 2.0 http://josephj.com/training/yzu/yui-ajax.html
  • 65. YUI AJAX YUI AJAX Connection Manager 2. Request 1. Request A 3. A 4.
  • 66. YUI AJAX AJAX 2. Request 1. JavaScript Request A 3. A 4.
  • 67. 3 YUI Connection http://josephj.com/training/yzu/yui-ajax.html
  • 68. 4. YUI Get Utility http://josephj.com/training/yzu/yui-get.html
  • 69.
  • 70. <script src=” http://api.flickr.com/services/feeds/photos_public.gne?tags=yzu&lang=en-us&format=json“></script>
  • 71. 4 YUI Get http://josephj.com/training/yzu/yui-get.html
  • 73. 5 YUI http://josephj.com/training/yzu/yui-menu.html 1. new YAHOO.widget.MenuBar([ id]); YUI 2. render()
  • 74. 5 YUI http://josephj.com/training/yzu/yui-menu.html (true false) autosubmenudisplay hidedelay n (true false) lazyload
  • 75. 6. YUI UI
  • 76. YUI Button HTML YUI Button
  • 77. 6 YUI http://josephj.com/training/yzu/yui-button.html 1. new YAHOO.widget.Button([ id]);
  • 78. 7. YUI Web 2.0
  • 79. YUI Container YAHOO.widget.Dialog YAHOO.widget.Panel YAHOO.widget.Panel YAHOO.widget.SimpleDialog
  • 80. 7 YUI http://josephj.com/training/yzu/yui-panel.html 1. var oPanel = new YAHOO.widget.Panel([ id], [ ]); #panel 2. oPanel.render(document.body) append 3. oButton.addListener(‘click’, onButtonClick) onButtonClick oPanel.show();
  • 81. 7 YUI http://josephj.com/training/yzu/yui-panel.html close fixedcenter modal underlay shadow’, ‘matte’ visible width { 1: 1, 2: 2}
  • 83. YUI
  • 84.
  • 85. YUI
  • 86. YUI BSD License
  • 88. • Fasten Improvement • Fun • Innovation • Recruiting • • YUI Contributor
  • 89. jQuery Prototype Dojo GWT
  • 90. JavaScript • • JavaScript • • • QA •
  • 91. IDE ...
  • 92. IDE Aptana
  • 93.
  • 94. no.
  • 95. • ASP, PHP, RoR, Python, JAVA... • • 3rd Party
  • 97. ... Google Maps ... Yahoo! Map http://www.bnext.com.tw/LocalityView_6980
  • 98. Yahoo! 3rd Party
  • 100. ilove7388 ... orz...
  • 105.
  • 108. Social Open Social
  • 109. 2007/5/24 Facebook F8 http://www.flickr.com/photos/kk/2327597086/
  • 110. Social Facebook FQL FBML FBJS
  • 111. ..
  • 112. OpenSocial Social Applications API Spec
  • 113.
  • 115. Yahoo! OpenSocial
  • 116. 10/17 Yahoo! Profile
  • 117. Social Directory Profile Contacts Address Book Messenger Relationship User Status Updates / http://developer.yahoo.com/social/
  • 118. Twitter Twitter ? Yahoo! Messenger Updates
  • 119. MyBlogLog Twitter Y!M http://manage.community.yahoo.com/ vitality/
  • 120. / /
  • 121. Next?
  • 123.
  • 124. Yahoo!
  • 125. Mail/Contact API Local Yahoo!
  • 126. Yahoo! Pat Jameson Pat Jameson Pat Jameson
  • 129.
  • 130. View Small View Application Lightbox View Sever-side Script Application 760px YAP Web Server User App HTML YML Small View 300px+ 250px Yahoo! User App Application
  • 131. App HTML CSS JavaScript YML YQL
  • 132. HTML + CSS + JavaScript YAP YML YQL
  • 133. YML Yahoo! Markup Language Text <!-- --> <yml:friend-selector uid=quot;viewerquot;/> YML UI
  • 134. YAP SDK
  • 135. PHP SDK Text OAuth YQL Social API
  • 137. Yahoo! Cool
  • 138. YAP Open • OpenSocial • Hadoop • OpenID • oAuth
  • 142. OpenID SSO BBAuth Retire ...
  • 143. Quick Summary • Open APIs Yahoo! • Social • YAP Y Yahoo! Powerful