使用xmlhttp为网站增加股市行情查询功能(2)
发布时间:2007-10-10 21:09:00
二、ASP XmlHttp编程简述
1、客户端dns2.htm页面:
<script language="vbscript">
Sub submit1_onmouseup
Dim objXML, objXSL, objFSO,strFile, strFileName, strXSL,strURL, theString,TheForm
Set TheForm = Document.wordfind
window.status="正在检索数据···"
strURL="dns2.asp" ' 服务器侦听页地址
Set objXML = CreateObject("Microsoft.XMLHTTP") '创建MS的XMLHTTP组件
stra = "submit=submit&fqdn="&TheForm.webname.value
objXML.Open "post",strURL,false '采用Post提交方式;
objXML.setrequestheader "content-length",len(stra)
objXML.setrequestheader "content-type","application/x-www-form-urlencoded"
objXML.send stra ' 发送信息
xmlGet = objXML.responsebody '稍等片刻后,得到服务器端传回来的结果;
xmlGet = bytes2bstr(xmlGet) '将单字节转换成文本格式函数,源程序可以下面的dns2.asp程序中找到;
TheForm.comments.value=xmlGet
Set objXML = Nothing
end sub
</script>
<html><head><title>XMLHTTP之股票行情篇 - asp之家 - http://www.aspxhome.com</title><meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body bgColor=#a1bae6>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td width="100%" align=center>
<form method="post" name=wordfind onsubmit="javascript:return false">
<FONT color=#002e5b face=geneva,arial,sans-serif size=2>
<B>请选择股票名称(美国纳斯达克)</B></FONT>
<FONT color=#002e5b face=geneva,arial,sans-serif size=2><B>:<br>
<select name=webname style="HEIGHT: 22px; WIDTH: 80px">
<option value="^IXIC">纳斯达克</option><option value="ASIA">亚信</option>
<option value="CHINA">中华网</option> <option value="NTES">网易</option>
<option value="SINA">新浪网</option> <option value="SOHU">搜狐</option>
</select><input type="submit" value="查询" id=Submit1 name=Submit1></B>
<TEXTAREA name=comments readonly rows=10 cols=76 ></TEXTAREA>
</form></td></tr></table></body></html>
2、服务器端dns2.asp程序:
<%
dim xmlGet
xmlGet=""
if len(trim(Request.form("fqdn"))) > 1 then
Dim objXML, objXSL, objFSO
Dim strFile, strFileName, strXSL
Dim strURL, theString
'股市行情数据库服务器的地址
strURL="http://cn.finance.yahoo.com/q?s="+trim(Request.form("fqdn"))+"&d=2b"
Set objXML = CreateObject("Microsoft.XMLHTTP") '创建MS的XMLHTTP组件
objXML.Open "get", strURL, False
objXML.Send ' 发送信息
xmlGet = objXML.responsebody '稍等片刻后,得到股市行情数据服务器端传回来的结果;
xmlGet = bytes2bstr(xmlGet) '转换成文本格式函数,可以源程序中找到;
'过滤无用的HTML成分,挑选出股票具体信息;
strFind1 = instr(1,xmlGet,"最後交易",1)+8
strFind2 = instr(strFind1,xmlGet,"<b>",1)+3
strFind3 = instr(strFind2,xmlGet,"</b></td>",1)
xmlGet1="最后交易:"+mid(xmlGet,strFind2,strFind3-strFind2)+chr(13)+chr(10) '最后交易价
strFind1 = instr(1,xmlGet,"涨跌",1)+4
strFind2 = instr(strFind1,xmlGet,"<font color=",1)+19
strFind3 = instr(strFind2,xmlGet,"</font>",1)
xmlGet2="涨跌:"+mid(xmlGet,strFind2,strFind3-strFind2)+chr(13)+chr(10) '涨跌
Set objXML = Nothing
end if
response.write trim(Request.form("fqdn"))+"的股市行情:"+chr(13)+chr(10)+xmlGet1+xmlGet2
function bytes2bstr(vin)
strreturn = ""
for i = 1 to lenb(vin)
thischarcode = ascb(midb(vin,i,1))
if thischarcode < &h80 then
strreturn = strreturn & chr(thischarcode)
else
nextcharcode = ascb(midb(vin,i+1,1))
strreturn = strreturn & chr(clng(thischarcode) * &h100 + cint(nextcharcode))
i = i + 1
end if
next
bytes2bstr = strreturn
end function
%>
在上述过程中,可以发现我们自己的web服务器中的asp程序其实只起到一个中间传递的作用,在实际应用中,也可以省去这个中间层,使用vbscript通过xmlhttp直接向股市行情数据库发送和接收数据。不过这样的话,可能会因为IE中“通过(其它)域访问数据资源”被禁用(默认)而引起权限不够导致无法执行,所以该省去asp中间层的方法并不太通用。
本程序在基于Windows2000平台的IIS5.0和IE6.0上运行通过。实际使用过程中,可以把上述代码拷贝到自己网页中,经过简单的页面编辑,就可在自己的网页中增加在页面无闪烁情况下的股票信息查询功能了,初看上去,还真的有点象专业的证券服务商网站提供的服务了。
猜你喜欢
- Windows下ORACLE完全卸载:使用OUI可以卸载数据库,但卸载后注册表和文件系统内仍会有部分残留。这些残留不仅占用磁盘空间,而且影响
- 如何为XHTML做好准备,XHTML与HTML 4.01标准没有太多的不同。所以将你的代码升级至4.01是个不错的开始。HTML 4.01参
- 看那个自由落体div有感。这个没落体,画个圆。(ie only)<html><head><style>v
- 以下的文章主要是对MySQL性能影响关系紧密的五大配置参数的介绍,我前几天在相关网站看见对MySQL性能影响关系紧密的五大配置参数的资料,觉
- 第一种方法: 代码如下:/* 创建链接服务器 */ exec sp_addlinkedserver 'srv_lnk
- 也许已经有人发现可以这样写...CSS代码部分a.info { position:
- OL定义有序列表的时候,除非指定list-style-position:inside;,否则文字和前导符是有缩进的。但有的时候,OL定义的列
- 关于CSS中的命名规则(其实我觉得是XHTML元素的命名规则更加合理些)这个问题,已经有很多人在说了,其中也不乏一些真知灼见。不过这种东西也
- Monster是Alipay UED推出的网站代码分析、质量检测及评分的浏览器扩展,它能智能分析CSS、JS、HTML内容并生动形象展示网页
- 试了一下,xmlDoc.save()行不同,就试着用fso做了出来。整理一下,供大家discuss。由于用js操作本地xml文件之后save
- 看到别人用td和table标签模拟的办法: 设置table的上、左padding
- 方法1: X:\oracle\ora81\bin\wrap iname=XXX oname=XXX 方法2:9i在win2000下使用wra
- 正确使用字体和颜色可以让网页内容更易阅读,下面我们来看看具体的优化措施。留意颜色的对比对于视力不太好的人或者对于不太好的显示设备来说,黑地白
- 目的是想通过给定一个ID,取出所有的子ID,包括子ID的子ID。一开始写成FUNCTION,因为FUNCTION调用方便,但是报错:ERRO
- python使用utf8编码,mysql也是utf8编码,是什么问题?后来查了一下,使用一个简单的办法即可:vsql = "ins
- 聚集索引,数据实际上是按顺序存储的,数据页就在索引页上。就好像参考手册将所有主题按顺序编排一样。一旦找到了所要搜索的数据,就完成了这次搜索,
- 注意,下述部分主要与DOUBLE和FLOAT列相关,原因在于浮点数的不准确本质。MySQL使用64位十进制数值的精度执行DECIMAL操作,
- 阅读上一章:Chapter 10 应用CSSChapter 11 打印样式先前在第10章中,讨论了几种为文档应用CSS的方法,这一章是要研究
- delete 删除一张大表时空间不释放,非常慢是因为占用大量的系统资源,支持回退操作,空间还被这张表占用着。truncate table 表
- 决定数据类型的第一步是定义所存数数据的分类: 数值型, 字符串型还是临时型等;除了一些特别的并不是那么直观的外, 这通常是很直观的。接下来是