页面请求过慢

绯红女王 2014-06-24 11:54:57
第一次做网站,还是用的ashx

流程:Login.ashx->NVelocity模板引擎渲染HTML文件(Login.html)展示给用户->Login.ashx处理数据->相关操作;

两个页面通过 hidde 隐藏字段Login,判断是展示还是登录。


<!DOCTYPE html>
<html lang="en">

<head>
<title>毕业设计系统登录</title><meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" href="Login/css/bootstrap.min.css" />
<link rel="stylesheet" href="Login/css/bootstrap-responsive.min.css" />
<link rel="stylesheet" href="Login/css/matrix-login.css" />
<link href="Login/css/font-awesome.css" rel="stylesheet" />
<link href='http://fonts.googleapis.com/css?family=Open+Sans:400,700,800' rel='stylesheet' type='text/css'>

</head>
<body>
<div id="loginbox">
<form id="loginform" class="form-vertical" action="../Login.ashx" method="post">
<input type="hidden" name="Login" value="true" />
<div class="control-group">
<div class="controls">
<div class="main_input_box">
<span class="add-on bg_lg"><i class="icon-user"></i></span><input type="text" name="Username" placeholder="用户名" required='required' oninvalid="setCustomValidity('请填写用户名!')" oninput="setCustomValidity('')" />
</div>
</div>
</div>
<div class="control-group">
<div class="controls">
<div class="main_input_box">
<span class="add-on bg_ly"><i class="icon-lock"></i></span><input type="password" name="Password" placeholder="密码" required='required' oninvalid="setCustomValidity('请填写密码!')" oninput="setCustomValidity('')"/>
</div>
</div>
</div>
<div class="form-actions">
<span class="pull-left"><a href="#" class="flip-link btn btn-info" id="to-recover">忘记密码?</a></span>
<span class="pull-right"><input type="submit" value="登录" class="btn btn-success"/></span>
</div>
</form>
<form id="recoverform" action="#" class="form-vertical">
<p class="normal_text">请联系相关人员重置密码!</p>
<div class="form-actions">
<span class="pull-left"><a href="#" class="flip-link btn btn-success" id="to-login">« 返回登录</a></span>

</div>
</form>
</div>

<script src="Login/js/jquery.min.js"></script>
<script src="Login/js/matrix.login.js"></script>
</body>

</html>


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.SessionState;
using System.Data;
using System.Data.SqlClient;

namespace thesis
{
/// <summary>
/// 登录界面
/// </summary>
public class Login : IHttpHandler, IRequiresSessionState
{

public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/html";
string filename="~/Login";
string template="login.html";
context.Session.Clear(); //清除Session的所有信息(记录用户的一些基本信息)

if (context.Request["Login"] != null)
{
bool login = Convert.ToBoolean(context.Request["Login"]);
if (login)
{
string usr = context.Request["Username"];
string pwd = context.Request["Password"];
dynamic login_data = CommonHelper.Login(usr, pwd); //登录类

if (login_data.error == 0) //判断用户是否登录成功!
{
//将用户的基本信息存入Session
context.Session["ID"] = login_data.id; //用户ID
context.Session["ROLE"] = login_data.role; //用户角色类型(学生,教师)
context.Session["NAME"] = login_data.name; //用户姓名

if (string.Equals("teacher", login_data.role)) //判断用户是教师
{
context.Session["ISLEADER"] = login_data.isleader; //该教师是否具有管理能力
context.Session["LEADERLV"] = login_data.leaderLv; //管理能力的等级
}

context.Response.Redirect("index.ashx"); //重定向到主页
}
else
{
switch ((int)login_data.error)
{
case -1:
CommonHelper.YesOrNo(context, false, "", "用户名输入有误", "Login.ashx");
break;
case -2:
CommonHelper.YesOrNo(context, false, "", "无此用户", "Login.ashx");
break;
case -3:
CommonHelper.YesOrNo(context, false, "", "密码输入错误,请重新输入", "Login.ashx");
break;
default:
CommonHelper.YesOrNo(context, false, "", "错误信息不明", "Login.ashx");
break;
}
}
}
else
{
string html=CommonHelper.GetHtml(filename,template,null);
context.Response.Write(html);
}
}
else
{
string html=CommonHelper.GetHtml(filename, template, null);
context.Response.Write(html);
}
}

public bool IsReusable
{
get
{
return false;
}
}
}
}


问题一:搭建好了以后,进入Login.ashx页面很慢,但是取消加载页面,就立即出现页面。不知道啥情况?ashx不是速度会快一点的么?

我的观点:问题是不是出现在这里?
if (context.Request["Login"] != null)
{
bool login = Convert.ToBoolean(context.Request["Login"]);
if (login)


问题二:其他页面差不多也是这样,因为我写了一个登录类,这个类能否获得session值来判断用户有没有登录,没有登录就会重定向到登录页面。但是有时候正常操作会突然的重定向到登录页面,求解?

谢谢大家。如果有热心人士想获得整个网站的源代码来加以研究,可以联系我!
...全文
217 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_17312293 2014-07-06
  • 打赏
  • 举报
回复
fonts.googleapis.com/css?family=Open+Sans:400,700,800 很可能是连接google的问题
踏平扶桑 2014-06-25
  • 打赏
  • 举报
回复
打开浏览器的F12,然后点网络,跟踪,刷新一下页面,看看哪个地方最耗时,然后找对应的解决办法。(火狐、IE可以用F12,谷歌浏览器直接右键查看元素 然后找到网络刷新页面就可以跟踪各个请求的消耗时间了。)
netajax1 2014-06-25
  • 打赏
  • 举报
回复
1 登录方法调试下 2 不用放那么多session,统一为一个对象放进去 3 登录页面没必要用模版引擎,登录返回失败成功就行
telankes2000 2014-06-25
  • 打赏
  • 举报
回复
设断点一步一步的查看 哪一步耗时比较长
myhope88 2014-06-25
  • 打赏
  • 举报
回复
好复杂呀~~~
huaneramn 2014-06-25
  • 打赏
  • 举报
回复
晕,贴这么多上来。。。。。。。。。。
bdmh 2014-06-25
  • 打赏
  • 举报
回复
说明登录那个方法中可能有耗时的操作,比如数据库操作,仔细查一下
绯红女王 2014-06-25
  • 打赏
  • 举报
回复
顶一个!

62,074

社区成员

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

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

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

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