main.asp
--------------------------------
session("data")=request("data")1.asp
----------------------------------
dt=session("data")----------------------------------
不要以为这样写就可以了。其实你的main.asp中因为包含了1.asp他们会在服务器端同时处理。
当在父页面为session("data")赋值的时候,1.asp同时请求的session("data")却可能是任何值,所以你可以采用异步刷新来在1.asp中得到main.asp中赋给session("data")的值。
--------------------------------
session("data")=request("data")1.asp
----------------------------------
dt=session("data")----------------------------------
不要以为这样写就可以了。其实你的main.asp中因为包含了1.asp他们会在服务器端同时处理。
当在父页面为session("data")赋值的时候,1.asp同时请求的session("data")却可能是任何值,所以你可以采用异步刷新来在1.asp中得到main.asp中赋给session("data")的值。
setSession.asp:
<%
dim sname, svalue
sname = request("sname")
svalue= request("svalue")
session(sname) = svalue
%>getSession.asp
<%
response.write session(request("sname"))
%>main.asp:
<script>
function getQuery(name)
{
var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
var r = window.location.search.substr(1).match(reg);
if (r!=null) return unescape(r[2]); return null;
}
window.onload = function()
{
var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
xmlhttp.open("GET", "setSession.asp?sname=data&svalue="+ getQuery("data"), false);
xmlhttp.send(null);
}
</script>1.asp:
<script>
window.onload = function()
{
var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
xmlhttp.open("GET", "getSession.asp?sname=data", false);
xmlhttp.send(null);
var data = xmlhttp.responseText;
alert("session('data') = "+ data);
}
</script>
当在父页面为session("data")赋值的时候,1.asp同时请求的session("data")却可能是任何值,所以你可以采用异步刷新来在1.asp中得到main.asp中赋给session("data")的值。============================
不明白你在说什么main.asp
<iframe src="1.asp"></iframe>
<%session("a")="abc"%>
1.asp
<%response.write session("a")%>服务器的处理次序:先后台再前台
所以<%%>的内容,一定在<iframe>之前运行
也就是说SESSION赋完值后,才执行IFRAME,调入1。ASP,何来同步错乱之说?
所以直接赋值是可行的
不信你自己试一下