首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

Web页面减肥,慎用VS的自动格式化功能!

最近在做一个OA项目,其中有块协同的功能,类似于BBS,具体需求是什么样的我就不细讲了,我们这里就认为是一个BBS吧。一个帖子会有多个回帖,在帖子的展示页面上将帖子和所有回帖一起展示出来。当一个帖子的回复数达到上百时打开帖子就会特别慢,而且CPU和内存也会占用很高。打开页面的HTML源文件,可以看到有些回复数很高的帖子的页面大小也十分巨大,可能一个HTML页面就有1M大小。对于企业内部用户来说,1M其实也没有什么,毕竟是在局域网中,几秒钟就可以下载完成打开了,但是对于外网用户来说这就比较痛苦了。所以需要对这个页面进行减肥,将页面大小降下来。

02

使用Filter指定浏览器来缓存或不缓存服务器数据

在www.jdon.com上, 彭先生说缓存的设计是提高java系统表现能力的关键.缓存的合理应用在jive论坛上的表现是最有说服利的地方。        下面我们利用HTTP 规范1.1中对请求头类型Cache-Control的定义来说明如何利用在Filter机制实现Http请求的缓存或者不缓存。        这里我们列举的例子是缓存一个图片,比如网站的logo。我们可以指定客户端浏览器缓存对这个logo缓存,或不缓存,以及多长时间的缓存。       其实在asp.net中也提供了类似的功能,而且更为简单,有兴趣的读者可以参看asp.net的相关文章。  下面我们使用servlet的filter机制来实现上面的功能。  这个filter的代码如下:   import java.io.*;  import javax.servlet.*;  import javax.servlet.http.*;  import java.util.*;  public class ResponseHeaderFilter implements Filter {    FilterConfig fc;    public void doFilter(ServletRequest req, ServletResponse res,                        FilterChain chain) throws IOException,                   ServletException {      HttpServletResponse response = (HttpServletResponse) res;       for (Enumeration e=fc.getInitParameterNames(); e.hasMoreElements();) {          String headerName = (String)e.nextElement();          response.addHeader(headerName, fc.getInitParameter(headerName));      }      chain.doFilter(req, response);    }    public void init(FilterConfig filterConfig) {      this.fc = filterConfig;    }    public void destroy() {      this.fc = null;    }  }  在WEB-INF/web.xml 中添加如下配置  <filter>    <filter-name>ResponseHeaderFilter</filter-name>    <filter-class>com.jspbook.ResponseHeaderFilter</filter-class>    <init-param>   <param-name>Cache-Control</param-name>      <param-value>max-age=3600</param-value>    </init-param>  </filter>  <filter-mapping> <filter-name>ResponseHeaderFilter</filter-name>    <url-pattern>/logo.png</url-pattern>  </filter-mapping>

01

ScriptManager.RegisterStartupScript方法[通俗易懂]

Page.ClientScript.RegisterStartupScript(Page.GetType(), “”, “<script>window.open(‘default2.aspx’)</script>”); 如果页面中使用了Ajax ,则上述代码即使执行也无效果。对这种情况我们通常采用: ScriptManager.RegisterStartupScript(this.Button1, this.GetType(), “alertScript”, “window.open(‘default2.aspx’);”, true); 其中第一个参数为要注册脚本的控件ID,试了一下,只要是本页面的就行。 第二个参数为注册脚本控件类型,是控件还是this的GetType()都可以,typeOf(string)也没问题. 第三个脚本函数的名字,随便起。 第四个是脚本内容。 第五个是标明是否再添加脚本标签,如果第四个参数里包含了<script></script>标签,此处则为false,否则为true。

03
领券