1、相同页面跳转情况下可采用的传值方法


  • 1.1 使用Querystring 方法
    QueryString 也叫查询字符串, 这种方法将要传递的数据附加在网页地址(URL)后面进行传递。如页面A.aspx 跳转到页面B.aspx,可以用Request.Redirect("B.aspx?参数名称=参数值")方法,也可以用超链接:,页面跳转后,在目标页面中可用Ruquest["参数名称"]来接收参数。使用QuerySting 方法的优点是实现简单, 不使用服务器资源;缺点是传递的值会显示在浏览器的地址栏上,有被篡改的风险,不能传递对象,只有在通过URL 请求页时查询字符串才是可行的。

  • 1.2 利用隐藏域
    隐藏域不会显示在用户的浏览器中, 一般是在页面中加入一个隐藏控件, 与服务器进行交互时把值赋给隐藏控件并提交给下一页面。隐藏域可以是任何存储在网页中的与网页有关的信息的存储库。使用隐藏域存入数值时用:hidden 控件.value=数值,取出接收数值时用:变量=hidden 控件.value。使用隐藏域的优点是实现简单, 隐藏域是标准的HTML 控件,不需要复杂的编程逻辑。隐藏域在页上存储和读取,不需要任何服务器资源,几乎所有浏览器和客户端设备都支持具有隐藏域的窗体。缺点是存储结构少,仅仅支持简单的数据结构,存储量少,因为它被存储在页面本身,所以无法存储较大的值,而且大的数据量会受到防火墙和代理的阻止。

  • 1.3 ViewState
    ViewState 是由ASP.NET 页面框架管理的一个隐藏的窗体字段。当ASP.NET 执行某个页面时,该页面上的ViewState 值和所有控件将被收集并格式化成一个编码字符串, 然后被分配给隐藏窗体字段的值属性。使用ViewState 传递数据时可用:ViewState [" 变量名"]=数值,在取出数据时用:变量=ViewState["变量名"]。使用ViewState 的优点是:在对同一页的多个请求间自动保留值,不用服务器端资源,实现简单,视图状态中的值经过哈希计算和压缩,并且针对Unicode 实现进行编码,其安全性要高于使用隐藏域;缺点是因为ViewState 存储在页面本身,因此如果
    存储较大的值,用户显示页和发送页时的速度可能会减慢。虽然视图状态以哈希格式存储数据,但它仍可以被篡改。

  • 1.4 使用Cookie
    Cookie 可以在页面之间传递少量信息, 可以存储在客户端的文本文件中,也可存储在客户端的内存中。Cookie 方法适用于存储少量页面中经常改动的信息, 如为登陆过的网站保存登陆用户名,为用户输入提供方便,还有在一些用户自定义项目上保存用户的个性化设置。使用Cookie传递数据时可用:Response.Cookies["键名"]=键值;取出数据用:变量名=Request.Cookies["键名"]。使用Cookie 优点是:Cookie 存储在客户端, 不使用服务器资源,实现简单,可配置到期时间。缺点是:可以存储的数据量比较少,由于Cookie 并不被所有的浏览器支持,而且还可能被用户禁止或删除,所以不能用于保存关键数据。另外,Cookie 保存的形式是简单的明文文本,在它里面不宜保存敏感的、未加密的
    数据。

  • 1.5 使用Application 变量
    使用Application 变量也可以实现页面间的传值,Application变量是全局性的,所有用户共享一个Application 变量,一旦定义,它将影响到程序的所有部分。如果想在整个应用程序范围使用某个变量值Application 对象将是最佳的选择。存入数据时, 把值添加到Application 变量里:Application["变量名"]=数值;取出数据用:变量=Application["变量名"];在不需要使用该Application 时,要显式清除它:Application["量名"]=null。
    Application 优点:易于使用,全局范围。可供应用程序中的所有页来访问。缺点:若保存数据的服务器端进程被损坏(如因服务器崩溃、升级或关闭而损坏),那么数据就会丢失,所以利用Application 一定要有保底的策略;占用服务器端的内存,这可能会影响服务器的性能以及应用程序的可伸缩性。

  • 1.6 使用Session 变量
    Session 对象可以用来存储需要维护的指定对话的信息,不同的客户端生成不同的Session 对象。Session 用于存储特定于单独会话的短期信息。Session 的使用方法和格式与Application 相同。
    优点:易于实现,并且提供较高的安全性和持久性,可以应对IIS 重启和辅助进程重启,可在多进程中使用。缺点是耗用服务器端的内存。所以不要存储大量的信息。Session 最常见的用途是与Cookie 一起向Web 应用程序提供用户标识功能,Session也可用于不支持Cookie 的浏览器。但是,使用无Cookie 的Session 需要将会话标识符放置在查询字符串中,同样会遇到本文在查询字符串一节中陈述的安全问题。

  • 1.7 使用类的静态属性
    这种方法是利用类的静态属性实现两个页面间的值传。定义一个包含静态属性的类;将要传送的值赋给静态属性;目标页面中可以通过静态属性获得源页面中要传的值。
    优点是可以方便传送多个数据,缺点是需要额外编程,增加
    程序设计的工作量,占用服务器内存。

  • 1.8 使用Server.Transfer
    通过Server.Transfer 方法把执行流程从当前的ASPX 文件转到同一服务器上的另一个ASPX 页面的同时,可保留表单数据或查询字符串,做法是把该方法的第二个参数设置成True,在第一个页面用Server.Transfer("目标页面名.aspx",true);目标页面取出数据用:Ruquest.Form["控件名称"]或Ruquest.QueryString["控件名称"]。Asp.net2.0 中还可以这样来用,代码如下:
1 PreviousPage pg1;
2 pg1=(PreviousPage)Context.Handler;
3 Response.Write(pg1.Name);

说明: 此段代码用在目标页面中取出传递的值,Previous- Page 是原页面的类名,Name 是在原页面定义的属性, 需要传递 的数据存入到此属性中。
使用这种方法, 需要写一些代码以创建一些属性以便可以 在另一个页面访问它, 可以在另一个页面以对象属性的方式来 存取数值,这个方法在页面间值传递中是特别有用的,这种方法 不但简洁,同时又是面向对象的。


  • 1.9 Cache
    Cache 具有强大的数据操作功能, 以键值对集合的形式存 储数据,可以通过指定关键字来插入和检索数据项。它的基于依 赖性的终止功能, 使它能够精确控制如何并及时更新和消除缓 存中的数据。它可以内部进行锁定管理,不需要象Application 对象那样使用Lock()和Unlock()方法进行串行化管理。缺点是使用 方法较复杂,使用不当反而降低性能.

2、不同页面跳转情况下可采用的传值方法


  • 2.1 情况一:源页面可以跳转到目标页面,源页面传递数据给目标页面
    使用查询字符串, 将少量信息从一页传输到另一页以及不 存在安全性问题时,是一个简单常用的方法;使用Server.Transfer方法,可传递表单数据或查询字符串到另一个页面,还可以 保存初始页的HttpContext, 当目标页和源页面在同一个服务器 时,可以用此方法。

  • 2.2 情况二:页面传递数值给自身页面

即在对同一页的多个请求间保留值, ViewState 属性可提供具有基本安全性的功能。也可用隐藏域,存储少量回发到自身或另一页的页信息时使用,不考虑安全性问题时使用。


         2.3 情况三:源页面传递数值给目标页面,而源页面不能直接连接到目标页面。有多个方法,具体用哪个要看具体情况。
Application: 存储由多个用户使用且更改不频繁的全局信息,此时安全性不成为问题。不要存储大量的信息。Session:存储特定于单独会话的短期信息,并且需要较高的安全性。不要在会话状态中存储大量的信息。需要注意,将为应用程序中每一会话的生存期创建并维护会话状态对象。在支持许多用户的应用程序中, 这可能会占用大量服务器资源并影响可缩放性。
Cookie: 当您需要在客户端存储少量信息以及不存在安全性问题时使用。类的静态属性,方便传送多个数据。
Cache :对象用于单个用户、一组用户或所有的用户。可以为多个请求长时间、高效率的保存数据。上述几个方法, 不仅用于情况三, 前面两种情况都可以使用,只是没有必要时尽量少用,否则会造成资源浪费或增加程序的复杂性。

  • 2.4 在url路径后面带参数,参数与url之间用?隔开,参数与参数之间用&符隔开

    1
    window.location.href = "a.html?name='kevin'&age='20'";
  • 2.5 通过localStorage 和 sessionStorage 先存本地在取出数据

    用setItem来存数据,第一个参数是 名字,第二个参数是存数的数据

    1
    2
    3
    //存数据
     window.localStorage.setItem("data", "kevin");
     window.sessionStorage.setItem("data", "kevin");

    用getItem来取数据,参入要取数据的 名字就好

    1
    2
    3
    //取数据
    window.localStorage.getItem("data");
        window.sessionStorage.getItem("data");

    当然如果要存储的数据是一个对象的话,就需要将对象转换为字符串,在取数据的在将字符串转为对象就可以了

    对象转字符串 JSON.stringify( " 对象 " )

    字符串转对象 JSON.parse( " 字符串 " )

js页面跳转并传值的常用方法相关推荐

  1. js页面跳转 和 js打开新窗口方法

    js页面跳转 和 js打开新窗口 方法 Js返回上一页: 1. Javascript 返回上一页 history.go(-1), 返回两个页面: history.go(-2); 2. history. ...

  2. 微信小程序两个页面跳转,传值

    微信小程序两个页面跳转,传值 在小程序界面,需要点击后跳转界面并且传递一个值. 具体实现如下:首先在wxml界面需要绑定事件,绑定需要传的值 a.wxml `<view bindtap=&quo ...

  3. js页面跳转和js打开新窗口

    js页面跳转 和 js打开新窗口 方法 Js返回上一页: 1. Javascript 返回上一页 history.go(-1), 返回两个页面: history.go(-2); 2. history. ...

  4. 【Android基础】页面跳转与传值(Activity跳转与传值)

    一个Android应用程序很少会只有一个Activity对象,如何在多个Activity之间进行跳转,而且能够互相传值是一个很基本的要求. 本次我们就讲一下,Android中页面跳转以及传值的几种方式 ...

  5. iOS——使用StroryBoard页面跳转及传值

    之前在网上搜iOS的页面跳转大多都是按回以前的那种xib的形式,但鄙人是使用storyboard的.这篇就只介绍利用storyboard进行页面跳转与传值. 新建页面 iOS的程序也是使用了MVC的思 ...

  6. JS返回上一页-JS返回下一页-JS页面跳转

    JS返回上一页-JS返回下一页-JS页面跳转 Javascript 返回上一页: 1. history.go(-1), 返回两个页面: history.go(-2); 2. history.back( ...

  7. js页面跳转和js对iframe进行页面跳转、刷新

    js页面跳转和js对iframe进行页面跳转.刷新 一.js方式的页面跳转 1.window.location.href方式     <script language="javascr ...

  8. js 页面跳转方法 当前页与新增页面

    js 页面跳转方法 open('http://www.baidu.com'); //页面跳转打开一个新的页面close() //关闭当前页面location.href //可以进行页面跳转当前网页直接 ...

  9. location.hash 原生js页面跳转/路由

    使用vue开发项目非常方便,vue全家桶让你想实现什么功能都更加便捷,但是使用原生js,jquery开发,页面之间跳转怎么实现呢, 下面说一下window.location.hash,概念性的东西大家 ...

  10. js页面跳转参考代码大全

    整理一下JS页面跳转参考代码 第一种:      <script language=/"javascript/" type=/"text/javascript/&q ...

最新文章

  1. linux centos 7 安装中文字体
  2. 球30家厂商角逐自动驾驶汽车 四年后1000万辆上路
  3. 哈希表的最差复杂度是n2_给定数组A []和数字X,请检查A []中是否有对X | 使用哈希O(n)时间复杂度| 套装1...
  4. python字典调用_python 字典访问的三种方法
  5. 2021-10-24 J1939故障代码
  6. 六、配置基于 IP 子网划分 VLAN 示例
  7. 写贺卡给毕业师姐怎么写计算机系的,给师兄师姐的毕业贺卡寄语
  8. BIM+GIS开启公路工程全生命周期管理新模式
  9. 15.Elasticsearch 7.15 Query DSL 之 Wildcard查询、Regexp查询
  10. 泰服游戏服务器如何显示中文,【战争机器不能显示中文怎么解决】如何解决_战争机器中文设置教程_游戏城...
  11. M3D GIS三维数字沙盘可视化交互地理信息系统开发教程第44课
  12. EurekaCAP原理
  13. 数组的参数必须是 ByRef
  14. 消息推送----微信小程序,公众号
  15. 信息的安全传输(JAVA实现信息的安全传输工具)
  16. 大学排行榜 : qs全球中国区仅大陆大学排行榜
  17. SCAU 计算智能 18118 勇者斗恶龙
  18. Word输出PDF公式丢失(特别是mathtype输出的)一步解决
  19. 证件照排版功能代码-python版本
  20. 2021年国内主流的人力资源管理系统有哪些?

热门文章

  1. office2016安装mathtype7.4教程
  2. 手工画图和计算机画图的内在联系,工程制图与计算机绘图教案10-11-1
  3. 最速下降法解析(理解笔记)
  4. LCD1602单片机(STC51/STM32)驱动程序详解
  5. Origin常见使用问题集锦
  6. 【无线安全】Kali 暴力破解 WiFi 密码步骤详解
  7. MapGuide应用开发系列(11)----创建自己的第一个MapGuide应用程序
  8. 国际信息安全管理标准体系--BS7799
  9. 优化算法(一)—— 模拟退火算法(SA算法) 实战
  10. (双硬盘(SSD+HDD)/单硬盘)双系统win10+ubuntu18.04安装记录