当前文章被分类为:AJAX

试用google search的Ajax api

最近两个月访问google老抽风,也8知道伟大的GFW使了些什么手段。虽然形式不容乐观,仍然是看到了狗狗发布了google adsense api和google search ajax api,显然后者更具有实用价值。因此俺用迅雷不及掩耳盗铃之势申请了api key,在参考了online manual之后,还是用实际代码说话吧:
PLAIN TEXT
JAVASCRIPT:

function OnLoad() {

        // Create a search control

        var searchControl = new GSearchControl();

       

        // 搜索选项,这里设置为自动展开

        var options = new GsearcherOptions();

        options.setExpandMode(GSearchControl.EXPAND_MODE_OPEN);

 

        // 添加了一个网页搜索

  [...]

评论

用php将rss转化为json格式

要用php将rss转换成json,简单的转换思路是:
rss -> php array -> json
我们不必从头进行这些工作,pear已经提供了一些可用的类库,到命令行下面利用pear安装这些包
pear install channel://pear.php.net/XML_RSS-0.9.9
pear install channel://pear.php.net/HTML_AJAX-0.4.0
下面是一个简单的测试代码:
PLAIN TEXT
PHP:

<?php

require_once 'XML/RSS.php';

require 'HTML/AJAX/JSON.PHP';

 

$rss = new XML_RSS('http://www.ooso.net/index.php/feed/');

$rss->parse();

//var_dump($rss->getItems());

 

$json = new HTML_AJAX_JSON();

$js = $json->encode($rss->getItems());

 

echo $js;

?>

什么是json?
相关文章

评论 (3)

php+ajax文件上传进度条

找到一篇文章PHP AJAX File Upload Progress Meter Updates,介绍如何用php Pear:HTML_AJAX制作带有进度条的文件上传,下面是我测试上传时的示意图

评论 (12)

apache的rewrite - 代理吞吐(Proxy Throughput)功能

今天尝试使用apache的rewrite作为ajax跨域调用代理,要用到rewrite的Proxy Throughput功能.翻看apache手册,看上去不算太复杂,只要用flag [P]就可以映射远程页面甚至整个远程网络区域到自己的名称空间.照着手册上写了个配置:
RewriteEngine On
RewriteRule ^/proxy/(.*)$ http://$1 [P,L]
我想通过上面的url重写达到这样的效果,使用代理功能访问http://www.mysite.com/proxy/www.destsite.com,自动使用代理访问www.destsite.com, url不改变.重启apache后,进行测试,始终是无法访问,于是开启rewrite日志:
RewriteLogLevel 9
RewriteLog logs/rewrite.log
日志中显示已经正确转向到www.destsite.com,但是仍然无法访问.郁闷的很,找这边的网管大哥讨教,被告知要开启proxy功能,否则rewrite的Proxy Throughput功能无法使用.于是修改httpd.conf,加入两行:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
重启apache测试,一切ok

评论

当ajax遭遇系统错误: -1072896658

上个礼拜整了个ajax调用yahoo搜索的demo,不想有网友发现search.htm会报javascript错 --- 系统错误: -1072896658.
他的服务器环境是apache 2.05+php4.3+ie6/firefox 1.07+windows server 2003,而我的服务器环境是apache 2.2+php5.1.2/php4.3+ie6/firefox 1.07+winxp.这个时候俺几乎就要把所有的错归结到windows server 2003身上了.但是对方可以正常查看我放在网上的demo,所以这跟windows的亲戚应该没太大干系,用-1072896658作为关键字google了一下,很快有了答案.
http://www.panoramio.com/blog/explorer-system-error-1072896658/
如果XMLHttpRequest对象请求的文档未指定正确的utf-8编码,就会出现这个错误
浏览器系统错误:-1072896658(Explorer system error: -1072896658)
解决办法很简单,给代理proxy.php加上简单的一行就一切ok:
PLAIN TEXT
PHP:

header('text/javascript; charset=utf-8');

评论 (8)

js中的template — Jemplate

最近在调试ajax程序的时候,要格式化数据输出html,代码比较混乱,这时候就比较怀念php里可以用到的各式各样的模板.然而js毕竟是很强大的,俺找到了这个javascript写的template类 -- Jemplate,用法还算简单.
首先得包含必要的文件:
PLAIN TEXT
HTML:

<script language="javascript" src="./prototype.js"></script>

<script language="javascript" src="./lyase_view.js"></script>

模板可以写在当前html里,也可以写在单独的模板文件:
PLAIN TEXT
HTML:

<!--模板定义在textarea标签里了-->

<textarea id="template" style="display:none">

 The Value of x is:<%= context.x%>

</textarea>

<!--赋值,上面的<%= context.x%>将被替换-->

<script>document.write(Lyase.View.render({element:"template"}, {x : 10}));</script>

如果模板写在单独的文件里:
PLAIN TEXT
HTML:

<script>document.write(Lyase.View.render({file:"tmp.tpl"}, {x : 10}));</script>

模板tmp.tpl的内容为:
PLAIN TEXT
HTML:

The value of x is:<%= context.x%>

甚至还可以支持复杂的循环:
PLAIN TEXT
HTML:

<textarea id="template" style="display:none">

<% context.list.each(function(pair){%>

      The value of <%= pair.name %> is: <%= pair.value%>

<% }) %>

</textarea>

PLAIN TEXT
JAVASCRIPT:

//code

document.write(Lyase.View.render({element:"template"}, {list :[{name [...]

评论 (5)

用ajax+json连接yahoo搜索web service打造本地搜索引擎

今天写了一个demo,利用yahoo提供的Yahoo! UI Library调用search web service,实现本地搜索.下面是代码片断说明:
调用Yahoo! UI Library Connection Manager的必要代码:
PLAIN TEXT
JAVASCRIPT:

<!-- Namespace source file -->

<script src = "js/YAHOO.js"></script>

<!-- Connection Manager source file -->

<script src = "js/connection.js"></script>

查询表单
PLAIN TEXT
HTML:

<form id="form1" name="form1" action="">

  关键字

  :

  <input type="text" id="query" name="query" value="photo" />

  <input type="button" name="Submit" value="搜索" onclick="searchIt(document.getElementById('query').value)" />

</form>

评论 (8)