发博文
个人资料
莫文
莫文
  • 博客等级:
  • 博客积分:260
  • 博客访问:30,963
  • 关注人气:15
搜博主文章
留言
加载中…
访客
加载中…
博文
标签:

文件服务

分布式

it

分类: DotNET

1、非分布式架构:

一般都是一个站点包含了所有操作,若做得好一点,会分为共三层,分别是web层、服务逻辑层,文件管理在最底层。

 

 

2、非分布式方案存在的问题

内存问题,由于所有层次的代码都在一个站点里边,若打开一个文件会占用5M内存,那么机器的内存能支持的最大的并发仅仅为四百多个并发(以一个进程分配2G内存算)而已,加上程序本身有一些数据需要缓存,那么很可能最大的并发就可能不够四百了,再加上站点本身操作系统等也是需要内存,站点能分到的内容就更少了,所以内存是非分布式方案的大问题。

 

为了解决此问题,就必须做分布式方案来扩展。

 

3、分布式解决方案:

分为三层,多个站点,其中web站点一个、文件管理层为一个站点(也可以为非站点模式),服务站点可以为多个站点服务,Web站点提供统一的入口,文件管理站点提供统一的文件管理,服务站点多个。

 

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

javascript压缩

css压缩

it

分类: DotNET

在开发中编写的js、css发布的时候,往往需要进行压缩,以减少文件大小,减轻服务器的负担。这就得每次发版本的时候,对js、js进行压缩,然后再发布。有没有什么办法,让代码到了服务器上边,它自己进行压缩呢?

 

既然我这么说了,那肯定是有办法的啦,~_~。

 

有两种办法:

第一种,在css、js请求到来的时候读取一下相对应的文件,进行压缩后返回。此方法可以通过在Global.asax的Application_BeginRequest的事件中,进行处理,也可以在web.config中注册一个httpHandler进行处理。

 

第二种是在程序启动的时候,对全部css以及js进行压缩,压缩之后,每次访问都使用压缩后的文件即可。这种办法可以将js全部压缩到一个文件夹里边,不过需要注意一下文件的顺序。

 

压缩使用的是雅虎的压缩组件: Yahoo.Yui.Compressor.dll

 

由于第一种办法没能实现js压缩到一个文件,所以这里采用的是第二种方案。

压缩方法比较简单,首先引用Yahoo.Yui.Compressor.dll和EcmaScript.NET.modified.dll

 

以下代码实现压缩js:

//

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 

 

估计大家都试过这样一件事:自己千辛万苦的设计一件产品的原型,拿出来讨论之后,发现,意见很多,各种各样,参与讨论的,谁都能说上一大通似乎很有道理的意见,例如这个按钮不好看,那样布局不合理,页面流程应该这个设计,信息应该怎样显示,并且这里边更可恶的是,且这些意见中,常常会有冲突,争执起来之后,谁也不让谁,谁也说不服谁,最后只有老板凭着自己的想法来拍板。

 

为什么会出现这种情况呢?

 

是不是这些想法都不对呢?那有点偏激了。都对,也不可能。那哪些事对的,哪些是错的?为什么没有一个统一的意见,为什么会出现谁也说服不了谁的情况呢?其实这都是因为用户体验这个东西太过于复杂,而门槛太低,你可以根据自己的感受评价一下这个产品,他也可以根据他感受来说自己体验,这样就造成了一个现象,大家都认为自己感受到的是对的,我觉得这个按钮你得放在这才适合我操作,要不你的产品用户体验就不好。

 

那究竟用户体验是什么?其实我们真的理解了用户体验是什么东西了吗?如何解决上边的问题?

 

其实产品设计开发过程中,我们很多观念都是错的,

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 

无论哪个系统在检索上都需要花费很大的力气设计的东西,让我们现在来看看现在国内有名的图书站点(当当卓越京东番薯)都是如何设计检索界面的。

 

首先来看检索条设计

检索相比导航来说,它的重要性是要低一些的(除了搜索引擎站点),因为使用检索的用户,一般目的都很明确,在系统的逗留时间相对来说也比较短而稳定,但使用导航的用户就不一样,他们在寻找着自己喜欢的东西,只有通过导航找不着他要找的东西的时候才会使用检索系统,所以导航系统不能占页面的很多的地方,但必须很明显,用户需要的时候,非常方便的找到。咱们来看以下站点设计:

 

当当:

 

 

卓越: 

&n

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 

 上一篇文章写了分布式网站统一头部和尾部的解决办法,此文进一步来分析下一个问题,分布式网站使用弹出框登录问题(登录的页面所有子站点一致)。我描述一下此问题,一般来说多个网站之间来说,头部统一还是仅仅不够的,若是采用JS输出头部的话,登录退出链接应该是直接链接到用户中心站点上,由用户中心对用户信息进行统一处理,当用户中心处理完了之后,对子系统进行通知,告诉子系统用户登录或者退出了。

 

按照上边描述的话,登录和退出都必须整个页面跳转到用户中心,这样的实现方式虽然没有什么大的问题,但对于用户来说不是很友好,体验比较差。
 

此时我们可以考虑使用弹出框登录。
 

那么我们如何来做呢?

 

我们可以在登录链接上做文章,既然头部由用户中心的JS输出,那么我们也可以在此JS代码中加入创建一个弹出框的代码(弹出框里边是一个Iframe,链接地址是用户中心的登录页面),这样一来,便实现了登录和提交,但还有一个问题,既然登录或退出了,子系统是需要刷新页面来进行权限方面的内容的更

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 

分布模式下的网站,由于出于统一页面框架或者出于品牌的目的,常常让模式下的各个站点的头部以及尾部一致,当然最简单的办法,就是每个网站都嵌套同样代码的头部以及尾部,但这样有个坏处,维护的时候,要到各个站点都修改一遍,非常麻烦,这时我们希望各个站点都使用一个头部和尾部,这样一来,我们维护的时候就简单多了,省去了很多麻烦。说到此处,估计大家会想到使用Iframe,当然啦,在这种需求下,这种实现办法是最简单,也解决了各个系统使用一个头部和尾部的问题,但是这样实现就是最优了吗?不是,使用IFrame增加页面的复杂度,性能上增加了页面的负担(因为一个页面需要构造两个页面,多了两个请求,浏览器维护一个页面总比两个三个压力小点,还有对于头部尾部链接来说还有小麻烦,当然子站点在业务上需要修改一下链接上的文字或者地址,或者在链接被点击的时候需要加上一个自己的处理事件,这是无法做到的,因为跨域(由于是分布式的站点,域名可能就不一样了,子站点的js无法操作头部和尾部))基于这些原因,使用IFrame在一定程度上解决一部分问题,但没有彻底的解决了问题。那到底使用什么办法呢?

 

我使用的是Js输出头部和尾部。

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

统一认证

用户认证

认证

c

it

分类: DotNET

上一篇文章写了被动认证的实现,本文接着写主动认证的实现。

 

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

ie9

it

 



 

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

float

css

clear

it

分类: XHTML

 

CSS中很多时候会用到浮动来布局,也就是经常见到的float:left或者float:right

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 

 

现在越来越多的系统迫于压力以及提高性能,很多站点都是采用多站点分布式运行,例如腾讯、新浪的站点就分成很多个频道,各个频道有独立的域名,独立的IP来支撑,这样一来各个站点之间就出现了统一认证的问题,也就是需要用户在一个站点登录,其他站点都能用的,且退出之后,各个站点都不能用,形成对用户的统一管理,避免了各个子系统之间的功能冗余。

 

 

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
  

新浪BLOG意见反馈留言板 不良信息反馈 电话:4006900000 提示音后按1键(按当地市话标准计费) 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

新浪公司 版权所有