这次2008年中国INNOVATIVE用户年会,带来了不少与2.0相关的消息,虽然很多内容都已零零星星的知道了,但由他们的高级销售人员用漂亮的PPT演示出来,还是让我对他们有了更深层次的了解,也促使我的思考角度有所转变。
报告很长,挑了一些感兴趣的字词记录了一下:
encore,这是他们新的2.0 opac,或者说2.0的资源揭示平台,不仅可以支持他们的系统,还可以支持其他公司的系统,看起来很2,万二很快就可以体验到的。
单点登录,“像雅虎,google一样,只登录一次”,有点生搬硬套的感觉,单独的一个系统,谈什么单点登录?
mashup,把自己的系统封闭起来,引入mashup,图书馆不能自己mashup、只能购买他们的mashup,把其他网络资源变成他们的服务来卖钱。
OAI收割,可以把其他系统(例如dspace)的资源通过OAI收割到他们的系统中。
开放API,终于有API了,通过一个xQuery API,把数据向图书馆开放,支持程度暂时不知,是否免费暂时不知。
content Pro,资源中心的概念,UGC模式下的多媒体数字化馆藏,但演示出来的,看来看去都是一个ms Flickr的图片分享网站,数据设计一看就是采用DC。
基于web的统计报表,还以为可以cool一点的web统计报表,毕竟技术很简单很成熟了,结果演示一看,原来是网页上提交统计请求,然后给你下载一个excel文件,一点都不酷,倒~
标签系统,把主题词提取出来形成标签,支持标签二级分类,通过这种方式发挥主题词的作用,很好。只不过,这只能算标签的皮毛。
RFID,这么好的市场前景,自然不能放过,通过express lane自助终端软件 + RFID + Circa (移动式终端硬件),可以实现低成本的自助借还和方便的图书清点。当然,他们也会单独卖接口。
Tags: library2.0, millennium, 图书馆2.0, 数图思考
xRequest.open(HttpMethod,url,true);//打开http访问
xReqeust.send(params);//传送相关参数
第三节:更新页面的某一部分
客户端浏览器通过侦听回调函数,确定服务器处理完请求后,就可以通过createElement()等方法来实现文档的修改,把相关反馈信息,更新到当前文档即可。代码…..略……
Tags: Ajax, millennium, OPAC, 开放
|
<html> <head> <title>Ajax in action</title> </head> <body> <table width=”200″ border=”1″> <tr> <td>书名:</td> <!–此处定义了td标签的id–> <td </tr> </table> </html> |
那么我们要嵌入脚本,是很容易的事情,我们可以把脚本直接写到里面,也可以通过外接脚本文件的形式嵌入,例如,在</head>标签之上加上一行:
|
window.onload=function() //当网页加载后运行脚本 { //通过id获取当前文档的书名单元格对象 var objTitle=document.getElementById(’t'); //输出对象内容 alert(objTitle.innerHTML); } |
当然,sample.html具有一定的理想性——结构清晰、具有id属性——目前OPAC系统里面,我相信大部分页面的HTML是极其恶心、惨不忍睹的,但是这并不能阻挡AJAX的步伐,除了getElementById()方法,我们还可以通过getElementsByTagName()来实现节点的搜索。
|
window.onload=function() //当网页加载后运行脚本 { //通过id获取当前文档的书名单元格对象 var objTitle=document.getElementById(’t'); //输出对象内容 //alert(objTitle.innerHTML); //与服务器通讯 sendRequest(”[服务器处理程序的URL]“,”t=”+objTitle.innerHTML); } function CreateXmlHttpRequest()//创建XmlHttpRequest对象 { var xRequest=null;//定义 if(window.XMLHttpReqeust)//支持XMLHttpReqeust对象 { xRequest=new XMLHttpRequest(); } else if(typeof ActiveXobject !=”undefined”)//支持ActiveX对象 { xRequest=new } return xRequest;//返回 } function sendRequest(url,params)//发送请求函数 { HttpMethod=”GET”;//传送方式 var if(sRequest) { sRequest.open(HttpMethod,url,true);//打开http访问 sReqeust.send(params);//传送相关参数 } } |
|
//yuanxinz.2007.05.09
package ajaxsample; import java.io.*; import java.sql.ResultSet; import java.sql.SQLException; import java.servlet.*; import java.servlet.http.*; public class ajaxsample extends HttpServlet { public void init(ServletConfig config) throws { //….. } protected void doGet(HttpServletRequest { String s = //执行电子图书数据库检索 …… rs = pool.getRs(”select * from try{ if(rs.next()) { rs.previous(); //将结果输出为文本 PrintWriter response.setContentType(”text/plain;charset=gb2312″); response.setHeader(”Cache-Control”, response.setHeader(”Pragma”, String int while(rs.next()) { outstr i++; } out.println(outstr); out.close(); } else { response.setStatus(HttpServletResponse.SC_NO_CONTENT); } //关闭数据库连接之类的…. ……. } catch(SQLException e) { e.printStackTrace(); } } } |
……
Ajax in action
**|http://*****
|
window.onload=function() //当网页加载后运行脚本 { //通过id获取当前文档的书名单元格对象 var objTitle=document.getElementById(’t'); //输出对象内容 //alert(objTitle.innerHTML); //与服务器通讯 sendRequest(”[服务器处理程序的URL]“,”t=”+objTitle.innerHTML); } function CreateXmlHttpRequest()//创建XmlHttpRequest对象 { var xRequest=null;//定义 if(window.XMLHttpReqeust)//支持XMLHttpReqeust对象 { xRequest=new XMLHttpRequest(); } else if(typeof ActiveXobject !=”undefined”)//支持ActiveX对象 { xRequest=new } return xRequest;//返回 } function sendRequest(url,params)//发送请求函数 { HttpMethod=”POST”;//传送方式 var if(sRequest) { //这里调用回调 sRequest.onreadystatechange=onReadyState; sRequest.open(HttpMethod,url,true);//打开http访问 sReqeust.send(params);//传送相关参数 } } function onReadyState() { var redy=sRequest.readyState;//获取sRequest实例的状态 var data=null; if(ready=4)//完成状态 { data=xRequest.responseText; } else { data=”正在读取相关数据….” } } |
用户浏览器收到服务器反馈的文本后,就可以通过createElement()等方法来实现文档的修改。
|
window.onload=function() //当网页加载后运行脚本 { //通过id获取当前文档的书名单元格对象 var objTitle=document.getElementById(’t'); //输出对象内容 //alert(objTitle.innerHTML); //与服务器通讯 var empty=document.getElementById(’empty’);//定义一个空节点 sendRequest(”[服务器处理程序的URL]“,”t=”+objTitle.innerHTML); } function CreateXmlHttpRequest()//创建XmlHttpRequest对象 { var xRequest=null;//定义 if(window.XMLHttpReqeust)//支持XMLHttpReqeust对象 { xRequest=new XMLHttpRequest(); } else if(typeof ActiveXobject !=”undefined”)//支持ActiveX对象 { xRequest=new } return xRequest;//返回 } function sendRequest(url,params)//发送请求函数 { |
Tags: Ajax, millennium, OPAC
(应要求,不得放截图,大家要看自己找去~嘿嘿,若被授权,可email偶)
二、对页面进行修改,这就更简单了,只要能输入HTML的地方,就可以任意嵌入我们想要嵌入的东西,方法有很多,比如,嵌入一个IFRAME、嵌入一个DIV、嵌入一段脚本……
具体实现过程如下:
一、(应要求,此处省略300多字,若被授权并需进一步交流,请email小钟)
二、提供一个webbridge.asp网页,该网页用于接收参数并实现相关功能,例如:
|
dim para ‘参数 para=trim(request(”para”)) if IsNumeric(replace(para,”x”,”"))=true then response.Write(”随书光盘:“) …. if 如有光盘可请求上网
下载光盘 end ….
response.Write(”电子图书:“) 超星数字图书 方正电子图书 书生电子图书 NetLibrary GOOGLE查找电子图书 response.Write(”电子期刊:“) ‘查找期刊 …. else ‘如果传入的是检索词 …. end if |
效果如下图(点击放大):
(应要求,不得随便截图,自己看去,若被授权,可EMAIL偶)
读者点击下载光盘,可以下载《Thinking in
java》这本书的随书光盘,点击GOOGLE查找免费电子图书,可以提交检索到GOOGLE图书等等。
当然,由于能用的参数有限,也没有用到AJAX,目前大概也只能做到这个程度,聊胜于无吧。
其实,对于所需的各类参数,即使Millennium的OPAC系统一个参数都不提供,我们也完全可以使用javascript
+
Dom,进行用户页面分析获得,进而通过AJAX,与各类数据库进行无刷新操作!
Tags: Ajax, millennium, OPAC, webbridge
| (应要求,此处省略具体实现过程,100多字,若被授权并需要进一步交流,请email小钟)
。。。。。。
|
将此选项改为NO即可。Tags: millennium, OPAC, pin