jsp include file 出现奇葩问题

执笔记忆的空白
博客专家认证
2015-12-08 10:25:04
加精
做一个B2B的电子商务平台,在做页面菜单的时候,考虑全局引用,就用了<%@include file="menu.jsp" %>

但是现在出现了 一个奇葩问题, 就是引入了菜单的页面,进行初始化加载的时候,菜单没有加载出来,刷新一下就好了。

而且这个问题只是偶尔出现。查了半天,没发现程序问题。考虑几个可能性

1、可能是网速原因,导致卡住了,没有引入menu页面
个人理解: 如果是网 速原因,没办法解决了,但是个人认为应该是什么地方有问题

2、可能是include file的方式不行
个人理解:有可能是include file的方式导致时而加载,时而不加载 ,考虑换成<jsp:include page>

查了下这两者的区别,<%@ include file=""%>与<jsp:include page=""/>区别

<%@ include file=""%>是在编译前加载,<jsp:include page=""/>是页面加载时再请求一次。 然而换成了这种方式,还是出现了未加载的情况

注:菜单数据是没问题的

现在对于这个问题,已经无从下手,求助各位贴友,看看CSDN的各位有没有什么解决办法

...全文
3106 40 打赏 收藏 转发到动态 举报
写回复
用AI写文章
40 条回复
切换为时间正序
请发表友善的回复…
发表回复
虎三儿 2016-02-23
  • 打赏
  • 举报
回复
真是缘分,楼主,我也遇到同样的问题,解决办法比较笨,但是好像可行: 在页面加载完毕之后,用js检查菜单是否加载,如果没有加载,者刷新当前页面即可,但是如果出现js错误或者其他原因造成菜单一直加载不出来,那么不停的刷新页面也存在一定风险。采用异步加载的方式个人觉得也不太好,毕竟菜单数据的变化不是很大,一次性转入session即可。 我的解决不方案: if($("#sidebarMenu li a").length==0){//菜单还没有加载完毕继续刷新 window.location.reload(); }
  • 打赏
  • 举报
回复
引用 35 楼 oh_Maxy 的回复:
[quote=引用 16 楼 shijing266 的回复:] [quote=引用 13 楼 pengjianan123 的回复:] 不清楚··楼主知道了吗?
不知道哎,试了几种方法了。 觉得可能真的是菜单数据太大,导致加载的时候如果太快了 就没加载出来。刷新一下就好了。 目前这个还没解决,只是发了个公告,给用户说了下这个问题[/quote]菜单分级,每次只加载当前层的,某个菜单需要展开的时候再发后台请求查询一次。如果菜单不常变,可以加载到内存里,提高查询效率。[/quote] 我们现在处理方式就是所有菜单信息放到缓存里面,菜单也是逐级加载的,点击之后放到session里面,下次加载就更块一点 这个问题跟31楼 说的相关,去掉那个多余的js(内部空的)之后,直到现在,测试部门还是没发现问题,应该是解决了
  • 打赏
  • 举报
回复
引用 37 楼 miaobiyizhou 的回复:
是不是menu数据太多的问题,你尝试一下menu里的数据异步加载。
异步加载也不好,难道每次都去交互么,问题已经解决
miaobiyizhou 2015-12-14
  • 打赏
  • 举报
回复
是不是menu数据太多的问题,你尝试一下menu里的数据异步加载。
miaobiyizhou 2015-12-14
  • 打赏
  • 举报
回复
是不是menu数据太多的问题,你尝试一下menu里的数据一步加载。
oh_Maxy 2015-12-14
  • 打赏
  • 举报
回复
引用 16 楼 shijing266 的回复:
[quote=引用 13 楼 pengjianan123 的回复:] 不清楚··楼主知道了吗?
不知道哎,试了几种方法了。 觉得可能真的是菜单数据太大,导致加载的时候如果太快了 就没加载出来。刷新一下就好了。 目前这个还没解决,只是发了个公告,给用户说了下这个问题[/quote]菜单分级,每次只加载当前层的,某个菜单需要展开的时候再发后台请求查询一次。如果菜单不常变,可以加载到内存里,提高查询效率。
cattpon 2015-12-10
  • 打赏
  • 举报
回复
learning~
  • 打赏
  • 举报
回复
引用 33 楼 qingyuan18 的回复:
用httpWatch看一下刷不出来的时候有后台的http请求吗?
直接从session取的
qingyuan18 2015-12-10
  • 打赏
  • 举报
回复
用httpWatch看一下刷不出来的时候有后台的http请求吗?
  • 打赏
  • 举报
回复
引用 31 楼 thy_java 的回复:
我觉得有可能是页面加载menu.jsp时menu内部js报错引起的(只是猜一下,之前有遇到过类似的问题)
这个有可能,因为多引入了一个js, 谢谢你的提议。 已经更改提交测试版本了,让测试去头疼吧... 哈哈
thy_java 2015-12-10
  • 打赏
  • 举报
回复
我觉得有可能是页面加载menu.jsp时menu内部js报错引起的(只是猜一下,之前有遇到过类似的问题)
  • 打赏
  • 举报
回复
引用 29 楼 xmt1139057136 的回复:
不行就把你的jsp menu页面封装成一个组件,每个地方调用。 你看看加载不出来的时候是,数据没有加载出来了,还是数据加载出来了,页面没有局部刷新
有可能是页面没有局部刷新。 这个问题测试的人提出来, 我自己本地重现不出来,非得生产环境或者测试环境操作N次之后才能出现那么一两次
业余草 2015-12-10
  • 打赏
  • 举报
回复
不行就把你的jsp menu页面封装成一个组件,每个地方调用。 你看看加载不出来的时候是,数据没有加载出来了,还是数据加载出来了,页面没有局部刷新
  • 打赏
  • 举报
回复
引用 26 楼 xmt1139057136 的回复:
页面预加载! 你试一试
你不是让我用html5吧? 现在这个平台是针对国外做的,那边的浏览器居然还有IE6的,我现在很多js、jquery都没法用,你觉得用这么高级的能行么
业余草 2015-12-10
  • 打赏
  • 举报
回复
页面预加载! 你试一试
业余草 2015-12-10
  • 打赏
  • 举报
回复
具体没有遇到过
_明月 2015-12-09
  • 打赏
  • 举报
回复
我《JSP程序设计》差一点就挂科了!
  • 打赏
  • 举报
回复
引用 18 楼 huoxin4415 的回复:
楼主看看menu获取的菜单数据有没有问题?如果是js异步获取的会不会和缓存有关?
数据是没问题的。 而且我没用js异步,页面上都是初始化加载的。至于缓存....这个不搭嘎吧
huoxin4415 2015-12-09
  • 打赏
  • 举报
回复
楼主看看menu获取的菜单数据有没有问题?如果是js异步获取的会不会和缓存有关?
  • 打赏
  • 举报
回复
引用 13 楼 pengjianan123 的回复:
不清楚··楼主知道了吗?
不知道哎,试了几种方法了。 觉得可能真的是菜单数据太大,导致加载的时候如果太快了 就没加载出来。刷新一下就好了。 目前这个还没解决,只是发了个公告,给用户说了下这个问题
加载更多回复(19)

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧