问题描述

目前,ERP后台有很多跳转外部链接的地方,会直接打开一个tab显示。因为有些页面是适配手机屏幕显示,放在浏览器会超级大。不美观,因此提出优化。

修改前:

修改后:

思考过程

1、先看下代码:

log.info("skipOutHtml-跳转外部页面, method:{}, url:{}, args:{}, redirect:{}, 操作人Id:{}", url, method, args, redirect, getOwnUserId());
if(redirect){return new RedirectActionResult(url + "?" + getParamStr());
}
HttpServletResponse response = beat().getResponse();
byte[] b = HttpUtil.exec(response, url, method, args);
PrintWriter writer = response.getWriter();
writer.write(new String(b, "utf-8"));
writer.flush();
writer.close();

2、需要一个新页面,绘制一个区域。直接将外部页面,框起来。

3、一时不知如何下手,问问AI

提问:

代码1:
HttpServletResponse response = beat().getResponse();byte[] b = HttpUtil.exec(response, url, method, args);PrintWriter writer = response.getWriter();writer.write(new String(b, "utf-8"));writer.flush();writer.close();代码3:$(function (){getSkipHtmlStream();})function getSkipHtmlStream(){skipHtml('/common/skipOutHtml',{code: '$!{code}', orderNo: '$!{orderNo}', action: '$!{action}'})}代码4:
<div class="mobile-view">
<div class="mobile-view-content"><p>这里是手机视图的内容...</p>
</div>
</div>如上,进入页面后,我想加代码3,代码3是请求后台的接口,按照代码1的返回,我想将返回的外部html页面嵌入到 mobile-view-content 中。目前没法放到该区域,而是整个页面渲染了,丢失了指定的区域

如何解决(=选择方案)

AI方案1:

function skipHtml(url, data) {$.ajax({url: url,type: 'POST',data: data,success: function(response) {// 将响应内容插入到mobile-view-content中$('.mobile-view-content').html(response);},error: function(xhr, status, error) {console.error("加载失败:", error);}});
}$(function() {getSkipHtmlStream();
});function getSkipHtmlStream() {skipHtml('/common/skipOutHtml', {code: '$!{code}', orderNo: '$!{orderNo}', action: '$!{action}'});
}

调整后,会有跨域问题。

AI方案2:调整后端接口,显然不实际。

HttpServletResponse response = beat().getResponse();
byte[] b = HttpUtil.exec(response, url, method, args);
String htmlContent = new String(b, "utf-8");// 返回JSON格式
response.setContentType("application/json");
PrintWriter writer = response.getWriter();
writer.write("{\"html\": " + JsonUtil.toJson(htmlContent) + "}");
writer.flush();
writer.close();

AI方案3:

<div class="mobile-view"><div class="mobile-view-content"><iframe id="externalContent" style="width:100%; height:100%; border:none;"></iframe></div>
</div><script>
function getSkipHtmlStream() {var url = '/common/skipOutHtml?code=$!{code}&orderNo=$!{orderNo}&action=$!{action}';document.getElementById('externalContent').src = url;
}
$(getSkipHtmlStream);
</script>

完美解决。

总结思考

问题的答案很简单,但是过程很有意思。我只是朦胧知道现状和我想要的,AI一下。如何解决变为了如何选择方案。换做之前,我会找一个前端帮忙看看,搞一下,现在我自己就可以。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/87621.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/87621.shtml
英文地址,请注明出处:http://en.pswp.cn/bicheng/87621.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网络通信协议与虚拟网络技术相关整理(上)

#作者&#xff1a;程宏斌 文章目录 tcp协议udp协议arp协议icmp协议dhcp协议BGP协议OSPF协议BGP vs OSPF 对比表VLAN&#xff08;Virtual LAN&#xff09;VXLAN&#xff08;Virtual Extensible LAN&#xff09;IPIP&#xff08;IP-in-IP&#xff09;vxlan/vlan/ipip网桥/veth网…

物联网软件层面的核心技术体系

物联网软件层面的核心技术体系 物联网(IoT)软件技术栈是一个多层次的复杂体系&#xff0c;涵盖从设备端到云平台的完整解决方案。以下是物联网软件层面的关键技术分类及详细说明&#xff1a; 一、设备端软件技术 1. 嵌入式操作系统 实时操作系统(RTOS)&#xff1a; FreeRTO…

GreatSQL通过伪装从库回放Binlog文件

GreatSQL通过伪装从库回放Binlog文件 一、适用场景说明 1、主库误操作恢复 利用 Binlog 在其他实例解析、回放&#xff0c;根据gtid只回放到指定位点。 2、网络隔离环境同步 备份恢复后可以拉去主库Binlog文件至新实例同步增量数据。 3、备份恢复遇到Binlog文件过大处理 恢复实…

MVC 架构设计模式

在现代软件开发中&#xff0c;架构设计决定了一个项目的可维护性与可扩展性。MVC&#xff08;Model-View-Controller&#xff09;作为经典的分层设计模式&#xff0c;广泛应用于 Web 系统、前端应用乃至移动端开发中。本文不仅介绍 MVC 的核心思想和机制&#xff0c;还将结合具…

(18)python+playwright自动化测试鼠标拖拽-上

1.简介 本文主要介绍两个在测试过程中可能会用到的功能&#xff1a;在selenium中介绍了Actions类中的拖拽操作和Actions类中的划取字段操作。例如&#xff1a;需要在一堆log字符中随机划取一段文字&#xff0c;然后右键选择摘取功能。playwright同样可以实现元素的拖拽和释放的…

Android 网络全栈攻略(四)—— TCPIP 协议族与 HTTPS 协议

Android 网络全栈攻略系列文章&#xff1a; Android 网络全栈攻略&#xff08;一&#xff09;—— HTTP 协议基础 Android 网络全栈攻略&#xff08;二&#xff09;—— 编码、加密、哈希、序列化与字符集 Android 网络全栈攻略&#xff08;三&#xff09;—— 登录与授权 Andr…

Python爬虫实战:从零构建完整项目(数据采集+存储+异常处理)

Python爬虫实战&#xff1a;从零构建完整项目&#xff08;数据采集存储异常处理&#xff09; 爬虫不是简单的请求解析&#xff0c;而是一个系统工程。本文将带你体验企业级爬虫开发的核心流程。 一、前言&#xff1a;为什么需要完整的爬虫项目&#xff1f; 作为初学者&#xf…

大数据时代UI前端的用户体验设计新思维:以用户为中心的数据可视化

hello宝子们...我们是艾斯视觉擅长ui设计、前端开发、数字孪生、大数据、三维建模、三维动画10年经验!希望我的分享能帮助到您!如需帮助可以评论关注私信我们一起探讨!致敬感谢感恩!一、引言&#xff1a;大数据重构用户体验设计的底层逻辑在数据爆炸式增长的今天&#xff0c;用…

FreeRTOS 中任务控制块(Task Control Block,TCB)用于管理和描述任务的核心数据结构

在 FreeRTOS 中&#xff0c;任务控制块&#xff08;Task Control Block&#xff0c;TCB&#xff09;是用于管理和描述任务的核心数据结构。每个任务都有一个对应的 TCB&#xff0c;它包含了任务的所有相关信息。 TCB 的主要功能 存储任务状态信息&#xff1a;TCB 中包含了任务…

前端-HTML-day1

目录 1、标签语法 2、HTML基本骨架 3、标签的关系 4、注释 5、标题标签 6、段落标签 7、换行和水平线标签 8、文本格式化标签 9、图像标签-基本使用 10、图像标签-属性 11、相对路径 12、绝对路径 13、超链接 14、音频 15、视频 16、综合案例1--个人简介 17、…

OpenCV篇——项目(二)OCR文档扫描

目录 文档扫描项目说明 前言 文档扫描代码总体演示 OCR文档识别代码总体演示: ​编辑 代码功能详解 1. 预处理阶段 2. 边缘检测 3. 轮廓处理 4. 透视变换 5. 后处理 主要改进说明&#xff1a; 使用建议&#xff1a; 文档扫描项目说明 前言 本项目实现了一个自动…

Java 中导出包含多个 Sheet 的 Excel 文件

在 Java 中导出包含多个 Sheet 的 Excel 文件&#xff0c;可以使用 Apache POI 或 EasyExcel&#xff08;阿里开源库&#xff09;。以下是两种方法的详细实现&#xff1a; 方法 1&#xff1a;使用 Apache POI&#xff08;支持 .xls 和 .xlsx&#xff09; 1. 添加 Maven 依赖 …

OneCode采用虚拟DOM结构实现服务端渲染的技术实践

一、技术背景与挑战 随着企业级应用复杂度的提升&#xff0c;传统服务端渲染(SSR)面临页面交互性不足的问题&#xff0c;而纯前端SPA架构则存在首屏加载慢和SEO不友好的缺陷。OneCode框架创新性地将虚拟DOM技术引入服务端渲染流程&#xff0c;构建了一套兼顾性能与开发效率的企…

变幻莫测:CoreData 中 Transformable 类型面面俱到(八)

概述 各位似秃似不秃小码农们都知道&#xff0c;在苹果众多开发平台中 CoreData 无疑是那个最简洁、拥有“官方认证”且最具兼容性的数据库框架。使用它可以让我们非常方便的搭建出 App 所需要的持久存储体系。 不过&#xff0c;大家是否知道在 CoreData 中还存在一个 Transfo…

汽车LIN总线通讯:从物理层到协议栈的深度解析

目录一、物理层&#xff1a;单线传输的信号奥秘1.1 电平定义与信号传输1.2 关键硬件组件作用二、数据链路层&#xff1a;帧结构与通信协议2.1 LIN帧的组成与功能2.2 主从式通信机制三、波特率同步&#xff1a;从节点的时钟校准原理四、软件实现&#xff1a;基于S32K144的主节点…

马尔可夫链:随机过程的记忆法则与演化密码

本文由「大千AI助手」原创发布&#xff0c;专注用真话讲AI&#xff0c;回归技术本质。拒绝神话或妖魔化。搜索「大千AI助手」关注我&#xff0c;一起撕掉过度包装&#xff0c;学习真实的AI技术&#xff01; 一、核心定义&#xff1a;无记忆的随机演化 马尔可夫链&#xff08;M…

【vue3+tauri+rust】如何实现下载文件mac+windows

项目背景&#xff1a;【vue3taurirust】 由于Safari对于下载总是有诸多阻拦&#xff0c;目前需求windowsmac可以实现&#xff1a; 后端返回的url文件可以下载;前端根据dom元素生成的PDF报告可以下载&#xff08;无远程URL&#xff09;&#xff1b; 我的尝试&#xff1a; 方法…

SQL 快速参考手册-SQL001

SQL 快速参考手册&#xff1a; 为方便快速学习和实践&#xff0c;提供了一份 SQL 快速参考手册&#xff0c;您可以打印出来随时查看&#xff0c;了解常见 SQL 命令的语法和用法。 SQL 数据类型 SQL 数据类型根据不同的数据库系统&#xff08;如 Microsoft Access、MySQL、SQL…

学习java集合

集合与数组的对比集合的长度可变, 数组的长度不可变集合实际上跟数组一样, 是一种容器, 可以存放数据数组可以直接存放基本数据类型和引用数据类型集合可以存放引用数据类型, 但是不能直接存放基本数据类型, 如果要存放基本数据类型, 需要变成一个包装类才行泛型: 限定集合中存…

python训练day49 CBAM

import torch import torch.nn as nn# 定义通道注意力 class ChannelAttention(nn.Module):def __init__(self, in_channels, ratio16):"""通道注意力机制初始化参数:in_channels: 输入特征图的通道数ratio: 降维比例&#xff0c;用于减少参数量&#xff0c;默认…