发挥语言的威力

本人在项目开发中,开始一直用php,在享受着php的灵活的功能时,同时也遇到了一些问题,如php的ODBC接口连接”远程oracle”问题,就是报告你无m骺馕NS服务名,经过一番捉摸,现在还是没有找到问题的答案,燃眉之急!
情急之中,想出一妙计,众君请看:
我用ASP连接远程数据库,当然一切OK,联想我以前利用浮动桢的心得,何不把访问远程Oracle的代码用ASP浮动桢实现,方法如下:
。在PHP页内建立一 DIV iframe src=”./inc/XXX.asp”/iframe /DIV
把访问远程Oracle的代码放入./inc/XXX.ASP页 如set
conn=Server.CreatObject(“ADODB.Connection”)… …
在../inc/XXX.ASP脚本位置放置如下代码: script language=”JavaScript”
parent.XXXID.value=”%=YYY%”;//==访问父窗口元素
parent.XXXXID.innerHTML=”%=ZZZ%”; /script
以上方法是本人的心得,只是起到抛砖引玉的作用,类似的,我们可以使用
PERL,ASP+,CGI,JSP,PHP的大融合,一是可以发挥各自语言优点,弥补不足。二是为网页模块化提供一点思路,特别开发大型项目时可以众人合作。关于脚本混合编程的问题,我会继续把我的新的奉献给大家!

复制代码 代码如下:

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”
“;
<html xmlns=”;
<head runat=”server”>
<title>Asp.net Server Push</title>
<script type=”text/javascript”>
function Change(str){
window.document.getElementById(“div1”).innerText=str;
}
function onload(){
var ifrpush = new ActiveXObject(“htmlfile”); // 创建对象
ifrpush.open(); //打开
var ifrDiv = ifrpush.createElement(“div”); //添加一个DIV
ifrpush.appendChild(ifrDiv); //添加到 htmlfile
ifrpush.parentWindow.Change=Change; //注册 javascript 方法
搞不明白为什么还要注册
ifrDiv.innerHTML = “<iframe src=’Default.aspx’></iframe>”;
//在div里添加 iframe
ifrpush.close(); //关闭
}
onload();
</script>
</head>
<body>
<div style=” float:left”>现在时间是:</div>
<div id=”div1″></div>
</body>
</html>

您可能感兴趣的文章:

  • 字符批量替换程序asp服务器版
  • asp.net下模态对话框关闭之后继续执行服务器端代码的问题
  • asp.net“服务器应用程序不可用”
    解决方法
  • win2003服务器asp.net权限设置问题及解决方法
  • ASP
    时间函数及如何获取服务器时间的写法
  • IIS7.5显示ASP的详细错误信息”500 –
    内部服务器错误解决”
  • win2008 r2
    服务器环境配置(FTP/ASP/ASP.Net/PHP)
  • win2003+IIS服务器下运行ASP+ACCESS非常慢的解决方法
  • iis8.5显示ASP的详细错误信息500
    内部服务器错误解决方法
  • 推荐4款傻瓜型的ASP服务器软件(asp运行环境一键搭建工具)
  • Asp.net获取服务器指定文件夹目录文件并提供下载的方法
  • asp服务器如何搭建
  • ASP脚本组件实现服务器重启

要想长时间保持服务器和浏览器之间的连接怎么办?长连接技术,这可不是什么新技术,用IFrame作为隐藏帧指向长请求页面的方法早已被很多人运用在互联网上,但是IFrame作为隐藏帧有一个弊端,那就是浏览器的进度条始终处在读取状态。为了使用户获得更好体验,“Google的天才们”使用了一个叫“htmlfile”的对象解决了这一问题,并把它运用了了GMail和GTalk两个产品上。
如今我们公司要做的新项目上要求有实时报警功能,本来我想用AJAX轮询做,但是觉得挺没追求的,前段时间听说有了Server
Push,但是没仔细研究,这次倒是个机会,一天时间,从网上搜集资料。资料不是很多,而且现在有很多开发人员还认为长连接是天方夜谭,居然还有把HTTP协议搬出来要证明自己观点的……
废话不多说了,来介绍一下长连接技术,通常的长链接就是做一个网页,里面写好一个IFrame标签,高宽设置为0,SRC属性指向一个网页,比如是ASPX,然后在这个文件中不做别的,只是在调用Context.Response.Write方法,输出什么?比如客户端有一个更改时间的方法Change(time),那输出就是(”<script>window.parent.Change(“+DateTime.Now.ToString()+”)</script>”),也就是不断的输出客户端的函数调用,并且做成死循环,这样浏览器和服务器端就形成了一条源源不断的数据传输链接。
那htmlfile是什么呢?这是一个类似Javascript中Window对象的一个ActiveXObject,它内部也是DOM结构,将作为隐藏帧的IFrame写入这个对象中,就可以解决进度条的问题。说的可能比较晦涩,来看实例代码吧:
Default.aspx.cs
c# 代码

Default.aspx不需要做修改。
serverpush.rar

public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected override void Render(HtmlTextWriter output)
{
string str;
while (true)
{//死循环保持长链接
str = “<script >window.parent.Change(‘” +
DateTime.Now.ToLongTimeString() + “‘)</script>”;
this.Context.Response.Write(str);
this.Context.Response.Flush();//输脚本调用出
System.Threading.Thread.Sleep(1000);
}
}
}

WebForm1.aspx

复制代码 代码如下:

You can leave a response, or trackback from your own site.

Leave a Reply

网站地图xml地图