<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    dyerac  
    dyerac In Java
    公告

    日歷
    <2007年7月>
    24252627282930
    1234567
    891011121314
    15161718192021
    22232425262728
    2930311234
    統計
    • 隨筆 - 36
    • 文章 - 10
    • 評論 - 94
    • 引用 - 0

    導航

    常用鏈接

    留言簿(5)

    隨筆分類(49)

    隨筆檔案(36)

    文章分類(11)

    文章檔案(10)

    相冊

    dyerac

    搜索

    •  

    積分與排名

    • 積分 - 79220
    • 排名 - 705

    最新隨筆

    最新評論

    閱讀排行榜

    評論排行榜

     


    題記:
       其實我這篇文章純粹是拋磚引玉之意
       Google Ajax Search 的api使用起來并不困難,如果有高手對此不屑一顧的話,不妨回答一下我的真正用意,那就是一個出色的web api該如何設計呢? 它的體系架構是什么? 我對此有個初步的想法, 前端開發自己的js庫, 調用遠端的服務. 但是具體實施該如何呢? 傳輸方式該是如何? JSON? 自定義XML? 還是SOAP? 現在很火的REST對 web api的設計有什么影響. 還望各位高手賜教 ^_^

    回到正題,看看如何用google api構建自己的ajax 搜索.

    先來看看官方介紹:

    The Google AJAX Search API is a Javascript library that allows you to embed Google Search in your web pages and other web applications. To use the API, you will first need to sign up for an API key, and then follow the instructions below.

    The Google AJAX Search API provides simple web objects that perform inline searches over a number of Google services (Web Search, Local Search, Video Search, Blog Search, News Search, and Book SearchNew!). If your web page is designed to help users create content (e.g. message boards, blogs, etc.), the API is designed to support these activities by allowing them to copy search results directly into their messages.

    This API is new, and its feature set is largely determined by active involvement of its customers. Please join us in helping to shape the API and features by participating in the Google AJAX Search API discussion group to give feedback and discuss the API.


    也就是說, google ajax search api是一個js的庫,用戶可以很容易的用該庫創造google search,并嵌入到自己的網頁中
    其中, 顯示的搜索結果是使用ajax方式局部刷新,這就是 ajax search.

    另外該庫提供了非常豐富的方法用于各種類型的搜索: 搜索網頁 新聞 博客 視頻 Local 書籍等等.

    注意: 使用之前 你必須得到一個google的許可(本文例子中的許可是無效的)

    下面是使用的一個示范:
    snapshot:




    code:
    <%@ page language="java" pageEncoding="utf8"%>
    <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
    <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
        
    <head>
            
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
            
    <title>Hello World - Google AJAX Search API Sample</title>
            
    <link href="http://www.google.com/uds/css/gsearch.css" type="text/css"
                rel
    ="stylesheet" />
            
    <style type="text/css">

        body 
    {
          background-color
    : white;
          color
    : black;
          font-family
    : Arial, sans-serif;
          font-size
    : small;
          margin
    : 15px;
        
    }


        .gsc-control 
    { width : 400px; }


        
    </style>
            
    <script
                
    src=http://www.google.com/uds/api?file=uds.js&v=1.0&source=uds-nbw&key=ABQIAAAA7z8-MRw3_j1ARxWWDiTXVhSrOPdqeecPZI9yWXVvOSTDE_N24BSQU0934cBfpy8j36zzYzSBH
                type
    ="text/javascript"></script>
            
    <script type="text/javascript">
        
    //<![CDATA[

        
    function OnLoad() {
          
    // Create a search control
          var searchControl = new GSearchControl();

          
    // Add in a full set of searchers
          var localSearch = new GlocalSearch();
          
    // searchControl.addSearcher(localSearch);
          
          
    //限制搜索的起始點 即站內搜索
          var siteSearch = new GwebSearch();
          siteSearch.setUserDefinedLabel(
    "xuanhua.org");
          siteSearch.setUserDefinedClassSuffix(
    "siteSearch");
          siteSearch.setSiteRestriction(
    "xuanhua.org");
          searchControl.addSearcher(siteSearch);
          
          searchControl.addSearcher(
    new GwebSearch());
          searchControl.addSearcher(
    new GvideoSearch());
          searchControl.addSearcher(
    new GblogSearch());
          searchControl.addSearcher(
    new GnewsSearch());
          searchControl.addSearcher(
    new GbookSearch());

          
    // Set the Local Search center point
          // localSearch.setCenterPoint("New York, NY");

          
    // tell the searcher to draw itself and tell it where to attach
         // create a drawOptions object
          var drawOptions = new GdrawOptions();

         
    // tell the searcher to draw itself in linear mode
          drawOptions.setDrawMode(GSearchControl.DRAW_MODE_TABBED);
          searchControl.draw(document.getElementById(
    "searchcontrol"), drawOptions);

          
    // execute an inital search
          searchControl.execute("bsbs");
        }

        GSearch.setOnLoadCallback(OnLoad);

        
    //]]>
        
    </script>

        
    </head>

        
    <body>
            
    <f:view>
            This is my JSF JSP page. 
    <br>
                
    <div id="searchcontrol" align="justify">
                    Loading
                
    </div>
            
    </f:view>
        
    </body>
    </html>



    如上, 頁面加載的時候,將調用onLoad()方法, 該方法設置了搜索組件的屬性并且在頁面渲染.
    見onLoad()方法
    GSearchControl 是核心類,用來管理各種類型的搜索.
    每種搜索對應不同的類 如上就使用了
          searchControl.addSearcher(new GwebSearch());
          searchControl.addSearcher(new GvideoSearch());
          searchControl.addSearcher(new GblogSearch());
          searchControl.addSearcher(new GnewsSearch());
          searchControl.addSearcher(new GbookSearch());
    分別加載了網頁 視頻 博客 新聞 和書籍的搜索
    這些搜索子組件通過addSearcher方法加載到searchControl中
    (可以想像searchControl是一個JFrame 其他的是swing別的組件)

    每個搜索子組件可以進行屬性設置,在這里,我們初始化了一個頁面搜索子組件
    自定義其顯示標簽為"xuanhua.org" 同時限制其搜索范圍在xuanhua.org中(即做站內搜索)

          var siteSearch = new GwebSearch();
          siteSearch.setUserDefinedLabel("xuanhua.org");
          siteSearch.setUserDefinedClassSuffix("siteSearch");
          siteSearch.setSiteRestriction("xuanhua.org");
          searchControl.addSearcher(siteSearch);

    另外 也可以設置整個搜索組件的樣式 即searchControl的顯示方式
    設置方法是通過傳入一個drawOptions
    以下方法將searchControl顯示成tabbedPane裝(默認是linear),并把它繪制在名為searchcontrol的div中

          var drawOptions = new GdrawOptions();

         // tell the searcher to draw itself in TABBED mode
          drawOptions.setDrawMode(GSearchControl.DRAW_MODE_TABBED);
          searchControl.draw(document.getElementById("searchcontrol"), drawOptions);

    同時 可以通過api調用讓搜索組件進行自動查詢:
         查詢字段為"bsbs"
        searchControl.execute("bsbs");

    最后記得設置
        GSearch.setOnLoadCallback(OnLoad);
        這樣頁面加載的時候會自動調用onLoad()方法.


    Google Ajax Search 還有許多強大的設置 這里就不多說了 詳細的可以看官方網站.
    http://code.google.com/apis/ajaxsearch/documentation/

    順便說一下 當初我看這個只是為了做站內搜索 找了半天發現只有ajax搜索 沒有普通搜索的api
    最后發現.....其實寫一個表格就完事了...

    <form method="get" action="http://www.google.com/search">
                    
    <table bgcolor="#FFFFFF">
                        
    <tr>
                            
    <td>
                                
    <href="http://www.google.com/"> <img
                                        
    src="http://www.google.com/logos/Logo_40wht.gif" border="0"
                                        alt
    ="Google"> </a>
                            
    </td>
                            
    <td>
                                
    <input type=text name=q size=31 maxlength=255 value="" />
                                
    <input type=hidden name=ie value=GB2312 />
                                
    <input type=hidden name=oe value=GB2312 />
                                
    <input type=hidden name=hl value=zh-CN />
                                
    <input type=submit name=btnG value="Google 搜索" />
                                
    <font size="-1"> <input type=hidden name=domains
                                        
    value="www.xuanhua.org" /> <input type=radio name=sitesearch
                                        
    value="www.xuanhua.org" checked>www.xuanhua.org </font>
                            
    </td>
                        
    </tr>
                    
    </table>
                
    </form>


    posted on 2007-07-25 17:52 dyerac in java... 閱讀(1933) 評論(0)  編輯  收藏 所屬分類: ajax原創文章JavaEE
     
    Copyright © dyerac in java... Powered by: 博客園 模板提供:滬江博客
    主站蜘蛛池模板: 久久精品国产亚洲一区二区| 国产大片51精品免费观看| 亚洲人成网站在线播放vr| eeuss免费影院| 亚洲日韩国产一区二区三区| 男人和女人高潮免费网站 | 亚洲爆乳无码专区www| 免费毛片在线视频| 美女羞羞视频免费网站| 亚洲女人被黑人巨大进入| 五月天婷婷精品免费视频| 国产亚洲欧洲Aⅴ综合一区| 亚洲天堂免费在线视频| 国产AV无码专区亚洲AVJULIA| 黄网站免费在线观看| 久久亚洲精品无码VA大香大香| 青青青国产在线观看免费网站 | 色综合久久精品亚洲国产| 免费a级毛片无码av| 国产美女视频免费观看的网站| 国产成人综合亚洲AV第一页 | 五月婷婷亚洲综合| 国产精品九九久久免费视频| 亚洲VA中文字幕不卡无码| 久久午夜夜伦鲁鲁片免费无码影视| 亚洲另类春色校园小说| 日本a级片免费看| 精品国产呦系列在线观看免费| 午夜亚洲AV日韩AV无码大全| 99久久综合国产精品免费| 特级毛片aaaa级毛片免费| 亚洲欧洲精品无码AV| AV无码免费永久在线观看| 阿v视频免费在线观看| 亚洲av无码专区在线播放| 成人A级毛片免费观看AV网站| 免费夜色污私人影院网站电影| 久久精品亚洲综合| 爽爽日本在线视频免费| 国产午夜无码精品免费看 | 91亚洲精品麻豆|