为什么有些页面不刷新,Js就不起作用

Daniel22_cn 2016-12-22 09:41:02
新手,做了一个简单的微信页面

用了Jquery 和layer

发现一个问题,在不同的页面切换的时候,Js会失效,比如,我有一个Button,
Button的ClientClick事件会调用一个Js的function,Function里面会Call一个Ajax,并对页面元素的内容进行检查,不符合数据库要求就直接报错。我进入这个页面之后,点击这个Button,无任何反应了。 需要点一下刷新按钮,就可以了。

为什么会出现这个情况,应该如何避免
...全文
609 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
Daniel22_cn 2016-12-23
  • 打赏
  • 举报
回复
猜测是因为这个框架预先加载了所有页面,所以导致除了第一页,其他页面的JS都不能工作 曲线救国方案是 把超链接都改成了 <a href='#' onclick='***'> 就可以了 将来有人搜索到提供一个思路吧
闭包客 2016-12-22
  • 打赏
  • 举报
回复
引用 2 楼 Daniel22_cn 的回复:
谢回复 应该就是缓存的问题, 我再说清楚一点, 第一次进入是好的, 第二次就不行了,非要刷新一下
你这个不是缓存的问题。 浏览器在脚本出错之后,不会再往下执行的。
Daniel22_cn 2016-12-22
  • 打赏
  • 举报
回复
确认了问题,我用了ratchet,这个前端框架,这个框架会导致后续加载的页面的JS不起作用,暂时不知道怎么搞,NM
  • 打赏
  • 举报
回复
用 vs 调试 javascript代码、查看 DOM 变量、查看 js 调用堆栈,等等调试方式,跟你调试 c# 程序是一样的啊。 晕。用了 vs 搞 javascript 程序调试,难道你还只会用什么功能比较弱的浏览器的工具去?
  • 打赏
  • 举报
回复
引用 6 楼 u010941149 的回复:
[quote=引用 5 楼 sp1234 的回复:] 在你的 Function 的第一行代码设置一个断点,然后使用 vs 对javascript 程序进行单步调试,然后贴出你的调试接过来!
使用 vs 对javascript 程序进行单步调试,步骤是? [/quote] 编写 jaavscript 代码,还不会用 vs 调试? 你就像 c# 程序一样去调试、去在 js 代码中去设置断点然后单步调试就行了啊!!
  • 打赏
  • 举报
回复
引用 2 楼 Daniel22_cn 的回复:
谢回复 应该就是缓存的问题, 我再说清楚一点, 第一次进入是好的, 第二次就不行了,非要刷新一下
通常只有在你修改了 html/js 文件而没有修改 asp.net 代码文件的时候,才会发生“客户端缓存”问题。只要你修改了 asp.net 代码、引起重新编译,就不会有这个问题。这应该算是 vs 开发环境的一个 bug,按说只要是在 asp.net 网站工程树目录里的文件(已经包括到工程里的文件)被修改,就应该在启动 IE 调试时自动清除客户端缓存。 你可以通过 Ctrl+Shift+DEL 键清除缓存。但是这通常只有在你修改了 html/js 文件时才需要。而你并没有在帖子中说出这些。
sdfgrtyu 2016-12-22
  • 打赏
  • 举报
回复
引用 5 楼 sp1234 的回复:
在你的 Function 的第一行代码设置一个断点,然后使用 vs 对javascript 程序进行单步调试,然后贴出你的调试接过来!
使用 vs 对javascript 程序进行单步调试,步骤是?
  • 打赏
  • 举报
回复
在你的 Function 的第一行代码设置一个断点,然后使用 vs 对javascript 程序进行单步调试,然后贴出你的调试接过来!
sdfgrtyu 2016-12-22
  • 打赏
  • 举报
回复
引用 3 楼 u012536120 的回复:
最好用F12跟一下,看是不是真的没有调用到函数。 网页开发者工具——F12
正解
sanGuo_uu 2016-12-22
  • 打赏
  • 举报
回复
最好用F12跟一下,看是不是真的没有调用到函数。 网页开发者工具——F12
Daniel22_cn 2016-12-22
  • 打赏
  • 举报
回复
谢回复 应该就是缓存的问题, 我再说清楚一点, 第一次进入是好的, 第二次就不行了,非要刷新一下
闭包客 2016-12-22
  • 打赏
  • 举报
回复
【进入】和【刷新】的操作,在忽略浏览器缓存的情况下,是等价的。 所以不存在【进入】一个页面无反应,【刷新】就可以的情况。 最好是看看 Console 的信息。
Daniel22_cn 2016-12-22
  • 打赏
  • 举报
回复
感谢回复,我经过F12调试发现了问题 我的HOME页面的Header,会带入到其他页面里面去,导致其他页面的HEDER里面没有JS的函数 我把我的HOME页面贴出来 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Home.aspx.cs" Inherits="CMSManage.Web.Wechat.Home" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>首页</title> <!-- Sets initial viewport load and disables zooming --> <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, minimal-ui" /> <!-- Makes your prototype chrome-less once bookmarked to your phone's home screen --> <meta name="apple-mobile-web-app-capable" content="yes" /> <meta name="apple-mobile-web-app-status-bar-style" content="black" /> <!-- Include the compiled Ratchet CSS --> <link href="css/ratchet.css" rel="stylesheet" /> <!-- Include the compiled Ratchet JS --> <script src="js/ratchet.js"></script> </head> <body> 这个页面加载第一次是正常的, 当我打开另外一个页面,例如下面这个 <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>设定收获地址</title> <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, minimal-ui"/> <!-- Makes your prototype chrome-less once bookmarked to your phone's home screen --> <meta name="apple-mobile-web-app-capable" content="yes"/> <meta name="apple-mobile-web-app-status-bar-style" content="black"/> <!-- Include the compiled Ratchet CSS --> <link href="css/ratchet.css" rel="stylesheet"/> <!-- Include the compiled Ratchet JS --> <script src="js/ratchet.js"></script> <script src="js/jquery-3.1.1.min.js" type="text/javascript"></script> <script src="js/layer/layer.js"> </script> <script type="text/javascript"> function SaveAddress() { var errMsg = ''; $.ajax({ url: 'WeChatHandler.ashx?temp=' + (new Date().getTime().toString(36)), data: { 'action': 'SaveAddress', 'UserTel': $('#txtUserTel').val(), 'UserName': $('#txtUserName').val(), 'UserEmail': $('#txtUserEmail').val(), 'PostCode': $('#txtPostCode').val(), 'UserAddress': $('#txtUserAddress').val() }, dataType: 'json', type: 'POST', async: false, success: function (data) { if (data.res == 0) { errMsg += '保存成功!'; } else { errMsg += '保存失败!'; } } }); if (errMsg != '') { layer.alert(errMsg); } return false; } </script> </head> <body> 那么其实看F12里面的调试页面,内容还是HOME的内容,这是为什么,要如何避免

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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