简单知识——跨页面信息传递

article/2025/7/6 16:02:55

背景

一个简单的数据查询功能,列表页面有“查看详情”按钮,跳转详情页面时列表的一条记录信息需要传递到详情页面;而详情页面有“返回”按钮,返回的同时也需要将原列表的查询条件回显。

跳转方式直接是 window.location.href,一个典型的跨页面信息传递,属于不同页面之间共享信息的情况。

那么跨页面共享信息的方式有哪些呢?本文将介绍三种方式。

URL参数传递

列表页面的查询参数,可以通过URL的方式传递到下一个详情页面,设置到隐藏表单域中;然后在详情页面返回时,将隐藏表单域中的信息一并拼接到url参数后面返回。

设置隐藏表单域有一个好处,查询条件对详情页面没有用,仅仅作为返回上一个页面时的条件回传,所以可以直接将隐藏表单信息直接拼接到url中,按钮事件如下:

/*** 返回按钮的事件*/
function goBack(){//form表单隐藏域有上一个页面传递过来的参数var query = $("#hiddenForm").serialize();//返回到列表页面window.location.href="dataList.jsp?isBack=true&"+query;
}

cookie传递

对于js对象信息的传递,可先将对象序列化为json字符串,再通过document.cookie的方式写入cookie,然后在下一个页面解析cookie,转换为JSON对象处理。

上述需求中在跳转查看详情页面时,因为当前选中的记录信息已经查询出来了,到了详情页面可以直接使用而不再请求后台。处理方式如下:

第一步,将该条记录序列化后写入cookie中,再跳转。

var currentData = null;
var allDatas= new Array();
function showDetail(index){//将当前记录写入cookiecurrentData = allDatas[index];document.cookie = "currentData="+JSON.stringify(currentData);var url = detail.jsp?now=1";window.location.href = url;
}

第二步,跳转页面加载事件中解析cookie信息:

var currentData=null;
+function ($) {var strCookie = document.cookie;var arrCookie=strCookie.split("; ");for(var i=0;i<arrCookie.length;i++){var spliit=arrCookie[i].split("=");if(spliit[0]=='currentData'){currentData= $.parseJSON(spliit[1]);break;}}//解析完成后立即清理cookiedocument.cookie="currentData=";
}(jQuery);

cookie使用不当,可能会出现问题,主要体现在一个页面上如果存入cookie的信息过多,会出现请求头域过长,后台报异常的问题

我的一个页面有三个列表,初始时所有需要传递的信息包含四五个JSON对象,在不清楚这些数据的总大小的情况下将所有需要传递的数据都序列化到cookie中,然后就出现头域超长问题了。

异常信息如下:

信息: Error parsing HTTP request header
Note: further occurrences of HTTP header parsing errors will be logged at DEBUG level.
java.lang.IllegalArgumentException: Request header is too large

此时超长的cookie信息如下(主要是几个序列化的大JS对象):
这里写图片描述

cookie可以使用,只要注意一下只针对适当、必要的大对象通过cookie方式传递,而且在解析完后立即清理无用cookie信息;其他可以通过URL或者现场查询的方式获取的数据不用该方式传递,控制cookie信息的长度即可。

重发请求获取共享数据

最后一种,就是必要的重复查询。即使上一个页面已经查过一次数据了,但是当前页面还是需要发起相同的请求来获取数据。可以这么理解:这些数据其实不是共享数据,只是相同请求、并且请求响应数据不会发生变化而已。

此时突然想到可以用Ehcache页面缓存框架,将这些亘古不变的请求缓存起来,那么页面重复请求也可以提升页面的响应效率的。

启示录

我这个毕业六年的程序员还没有对简单工作产生不良情绪呢,还总能体会到编程无止境、IT技术浩瀚、学海无涯的,个人知识太少的渺小感,我心单纯不减当年哪!

文档写的完美吗,脚本能不能写个程序自动化呢?
复制粘贴也是分境界的,低级的境界就是仅仅是复制粘贴了,至高的境界应该是这样的:

复制之前看看代码结构,大致了解下这段代码的作用;粘贴之后检查下有没有需要修正的地方,代码格式有没有问题;jsp页面引用文件中有没有什么是当前页面不需要的,无关的变量能不能去掉?

如果是自己写的代码,应该看看有没有值得优化的地方,过去编码时有没有特别的想法;如果是别人的代码,更应该看看怎么回事了,别人的代码有什么值得借鉴的地方,有什么要改正的地方。如果仅仅因为功能实现了,而结构糟糕的烂代码,重构一下又何妨?被我粘过来就是我参与的代码了,我有责任保证我提交的文件的优雅可读。

哈哈,像我这么单纯的技术人员,哪位网友的单位好,推荐一下把我收了吧!


http://chatgpt.dhexx.cn/article/UnMJY7MI.shtml

相关文章

信息传递的多样化的挑战

信息传递的障碍&#xff0c;是造成竞争被动的重要原因。因此&#xff0c;要使有用的信息得以正确传递&#xff0c;必须克服这种传递障碍。 方法之一是减少组织机构层次和信息传递的环节&#xff0c;尽量做到信息的直接贯通。 方法之二是采取双向传递方式。传统的传递往往是高一…

java实现信息传递

在过去&#xff0c;我们无数次实现了代码的本机运行&#xff0c;一行行的代码在我们的屏幕上飞舞&#xff0c;最终形成种种不同的结果&#xff0c;但是&#xff0c;这些都止于自己的计算机上&#xff0c;在这个万物互联的世界里&#xff0c;通信&#xff0c;是不可缺少的一环&a…

【PyG入门学习】三:信息传递机制

1.理论基础 将普通的卷积过程推广到非规则数据领域一般是通过邻域聚合或者信息传递机制。 x i ( k − 1 ) ∈ R F x^{(k-1)}_i∈R^F xi(k−1)​∈RF表示在第k-1层节点i的节点特征&#xff0c; e j , i ∈ R D e_{j,i}∈R^D ej,i​∈RD表示从节点j到节点i的边的特征&#xff08…

[易飞]录入信息传递设置信息

通常我们在查询相关单据单身中会有附带上一个单别的关联单据&#xff0c;比如采购发票单身有进货单单别、单号。系统默认做了超连接。 可有些时候我想查看这个品号信息的参数呢&#xff1f;是否可以自定义呢&#xff1f; 今天是礼拜一&#xff0c;打开某聊天群&#xff1a;就显…

100种思维模型之信息传递思维模型-028

人与人之间存有 认知偏差和理解偏差 &#xff0c;信息在传递过程中会 衰减、失真以及再加工 &#xff01; 信息传递思维模型 &#xff0c;一个有助于 提高信息传递质量 的思维模型。下面从三个方面进行介绍&#xff0c; 何谓信息传递思维模型、信息传递思模型生活中的运…

沟通管理--关于信息的有效传递和维护

沟通管理作为项目管理核心知识领域之一&#xff0c;在项目管理和团队协作中的作用毋庸置疑。沟通管理涉及的范围很广&#xff0c;本文从沟通的重要性和模型出发&#xff0c;主要从信息传递和信息维护这两个方面对沟通管理进行阐述。 一. 关于沟通 下面这张图描绘了西方文化中…

HC官方资料介绍

中国区市场招商联系方式&#xff1a;13867974424

HC-SR04驱动记录

文章目录 1、工作原理2、读取数据方式3、驱动记录 1、工作原理 常用的HC-SR04模块如下所示&#xff1a; 引脚说明&#xff1a; 引脚说明VCC电源&#xff0c;常用5vTrig控制端Echo接收端GND地 使用说明&#xff1a; 控制端发送一个10us的高电平脉冲&#xff0c;之后再接收口…

【STM32篇】驱动HC_SR04超声波测距模块

CH_SR04 一、简介 1.产品特点 HC_SR04超声波测距模块可提供2cm-400cm的非接触式测距感测功能&#xff0c;测距精度高达3mm&#xff1b;模块包括超声波发射器&#xff0c;接收器与控制电路。 基本工作原理&#xff1a; &#xff08;1&#xff09;采用IO口TRIG触发测距&#xff0…

HC-05蓝牙模块配置

目录 1、连接蓝牙模块a.蓝牙模块通过USB转TTL连接电脑b.打开串口助手&#xff0c;波特率设置为38400c.检验是否连接成功 2、配置波特率3、修改密码4、设置主从模式5、设置蓝牙连接模式6、查询自身地址7、添加配对蓝牙地址8、测试 1、连接蓝牙模块 a.蓝牙模块通过USB转TTL连接电…

HC-06蓝牙模块使用方法

接线方式&#xff1a; 配套资料&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1_8-d1LoHuhpIBC9Ygu4aJQ 参考&#xff1a; (1272条消息) HC-05/06蓝牙模块的原理及使用方法_hc-05蓝牙模块原理图_小小少年123的博客-CSDN博客 注意&#xff1a;蓝牙灯闪烁分析 如果…

初次使用HC-08蓝牙模块01

基础连接 1.接线 2.测试&#xff0c;手机APP和测试架&#xff0c;成功互发AT指令即成功 3.完整教学 测试结果 起初手机APP搜索不到蓝牙&#xff0c;以测试架为主&#xff0c;另一个为从&#xff0c;从上面的蓝灯不亮&#xff0c; 后面重新恢复出厂设置&#xff08;在串口…

HC-05的基本使用(STM32)

目录 一、HC-05 1、HC-05简介 2、接线方式 二、AT指令 1.基本指令 2、基本的使用 3、手机连接HC-05 三、CubuMX配置&#xff08;基于stm32f407zgt6&#xff09; 总结 一、HC-05 1、HC-05简介 HC-05 蓝牙串口通信模块&#xff0c;是基于 Bluetooth Specification V2.0 带 EDR 蓝…

智慧小区 HC 系统安装配置简单流程(V2022-09-28)

首先感谢官方 HC 开发&#xff08;一纸荒年&#xff09;的指导 ------------- 我的系统为&#xff1a; conetos 8.2(官方建议 7.6 版本较稳定) 登陆空间系统打开 SSH 终端# 第一步骤 1&#xff1a;先安装梓豪平台 1.1:梓豪平台安装是非常简单的&#xff0c;我们可以通过以…

Media Player Classic - HC 源代码分析 1:整体结构

Media Player Classic - HC 源代码分析系列文章列表&#xff1a; Media Player Classic - HC 源代码分析 1&#xff1a;整体结构 Media Player Classic - HC 源代码分析 2&#xff1a;核心类 &#xff08;CMainFrame&#xff09;&#xff08;1&#xff09; Media Player Cla…

HC-08蓝牙模块与电脑进行蓝牙远程通信! 支持HC-02、HC-08、HC-42蓝牙

因项目接触HC-08蓝牙模块&#xff0c;一直想电脑与STM32上接的HC-08蓝牙模块进行远程通信&#xff01;在网上未能找到解决办法&#xff0c;此方式为广州汇承公司提供&#xff08;蓝牙生产厂家&#xff09;&#xff0c;亲测有效&#xff01; 一、适用型号及PC条件&#xff1a; 1…

蓝牙模块(HC-05/HC-06)详解

这里写目录标题 0. 蓝牙概述蓝牙技术的特点 1. 常见的蓝牙模块2. HC-05/HC-062.1 概念2.2 区别 3. STM32使用HC-05通信3.1 方法3.2 示例代码 0. 蓝牙概述 蓝牙&#xff08;Bluetooth&#xff09;是一种用于无线通信的技术标准&#xff0c;允许设备在短距离内进行数据交换和通信…

经验分享帖 汇承HC-12无线模块的简单使用说明

** 汇承HC-12无线模块的简单使用说明 ** 无意间在网上看到HC-12的功能介绍,最吸引我的是他的通信距离。于是我从网上买了两个&#xff0c;想着替代两个蓝牙&#xff0c;实现远距离通信控制。 这两张图是我手上的HC-12无线模块&#xff0c;其他引脚我就不多说了&#xff0c;与…

HC-05主从模式蓝牙配对说明v1.0

HC-05主从模式蓝牙配对说明 在参加电赛或者做毕业设计的时候&#xff0c;可能需要进行无线通信传输数据。 无线通信的方案有NRF24L01的射频传输。 有esp8266的wifi。 使用HC-05蓝牙的方式进行无线透传使用简单&#xff0c;延时较低&#xff0c;用于调试场景非常方便&#xff0c…

【51】HC-06蓝牙模块使用

说到蓝牙模块&#xff0c;就不得不说下主、从机&#xff1a; 主机 : 用于向从机下发指令&#xff0c;能够搜索从机并主动建立连接的一方。 从机 : 用于接收主机下发的命令&#xff0c;不能主动建立连接&#xff0c;只能等别人连接自己。 主从一体 : 能够在主机和从机模式间切换…