昆明网站建设信得过品牌,西南首家三维全景技术提供商,为您提供营销型网站建设服务。

首页 > 前端开发
返回

asp.net使用泛型打造Request工具类

在ASP.NET页面中可以使用Request对象获取指定参数的值,例如:

string value = Request["id"];

参数值都是string类型,但是进行处理的时候可能要转换成数字、日期等类型。

string value = Request["id"];
int id = Int32.Parse(value);

实际应用的时候还要考虑异常的情况。

string value = Request["id"];
int id;
Int32.TryParse(value, out id);

如果每个页面都这么写,显得非常麻烦,代码重复也很严重,还是封装成一个工具类吧。

public class ReqHelper
{
  public static string GetString(string paramName) { ... }
  public static int GetInt(string paramName) { ... }
  public static bool GetBool(string paramName) { ... }
  ...
}

虽然原始类型是有限的,但是对每个类型写一个方法,还是显得臃肿了。其实这多个方法,区别只在于返回值类型。有没有办法把类型作为参数,让方法返回特定类型的值呢?答案是有的,那就是泛型

public class ReqHelper
{
  public static T Get<T>(string paramName) {
    string value = HttpContext.Current.Request.Form[paramName];
    Type type = typeof(T);
    return (T)Convert.ChangeType(value, type);
  }
}

T是在调用的时候才被指定,也就相当于类型参数。最后要考虑的还是异常处理,TryParse方法在转换出错的时候会输出该类型的默认值,这里也可以参考这种做法,但问题是如何获取未知类型T的默认值。其实在C#中已经提供这样一个关键字,那就是default。最终代码如下:

public class ReqHelper
{
  public static T Get<T>(string paramName) {
    string value = HttpContext.Current.Request.Form[paramName];
    Type type = typeof(T);
    object result;
    try
    {
      result = Convert.ChangeType(value, type);
    }
    catch
    {
      result = default(T);
    }
    return (T)result;
  }
}

调用方法:int id = ReqHelper.Get<int>("id");

分类:前端开发 标签:,

国外一些优秀开源PHP建站程序

最近有时间研究PHP,很早之前就接触过,知道PHP的很强的一面,但在云南网站建设行业,PHP开发的并不是很多。为了工作只能转到.NET平台。最近折腾博客,顺便搜了下国外的PHP优秀程序。经常听见周围的做设计的朋友想要做一个网站,不仅漂亮而且功能方面能够跟上潮流,做为一个开源世界的追捧者,给大家介绍几款比较常用开源程序,只要有一点基础的朋友就能建立满足自己业务需求的网站了。

博客:WordPress

WordPress可能是生命力最旺盛的个人博客系统了,无数的主题和界面,让任何人独立域名写博客成为可能,wordpress不仅可以做博客系统,还可以广泛应用于各类网络信息发布平台。

CMS Joomla

Joomla也是CMS方面的佼佼者,性能良好的插件,和容易编辑的主题让其生机勃勃,同时拥有众多公司的支持,让建站更加简单,Joomla的插件和主题多为收费的,目前国内也有一些专门做Joomla二次开发的公司。

论坛:phpBB

phpBB是一种广泛流行的开源论坛软件,具有易于使用的管理面板和友好的用户安装界面,可以轻松地在数分钟内建立起一个论坛,功能上具有很高的可配置性,能够完全定制出相当个性化的论坛。

CMS:Drupal

Drupal是一个开源的内容管理系统(CMS)平台,拥有强大并可自由配置的功能,能支持从个人博客到大型社区驱动的网站等各种不同应用的网站项目。

Wiki:MediaWiki
MediaWiki是PHP语言写成开源Wiki引擎,全世界最大的Wiki项目维基百科就是使用MediaWiki引擎。  Digg:Pligg

Pligg是一套灵活的类似Digg的Web2.0 CMS系统,系统使用PHP开发,模仿了国外流行的DIGG系统。  图像:Gallery

Gallery 是一个非常有名的免费开源图库相册软件,基于 PHP 和 MySQL, PostgreSQL 等数据库。功能非常强大,有丰富的扩展可以下载,安装很简单,有很多插件可用。  RSS:Gregarius

Gregarius是一个RSS聚合程序,免费开源,具备不错的用户体验,易于操作和管理。可以把其当成RSS阅读器使用。  电子商务:osCommerce

osCommerce是一套由自由软件开发社团开发并维护的在线商店的解决方案,免费开源,并可以应用到任何的商业环境中,可以在短时间内生成一个功能强大的电子商务网站。  广告:OpenX

OpenX(原名phpAdsNew)是一个用PHP开发的广告管理与跟踪系统,适合各类网站使用,能够管理每个广告主拥有的多种任何尺寸横幅广告,按天查看,详细和概要统计并通过电子邮件发送报表给广告主。  微博客:status

status是一个开源的微型博客系统,也是一个Twitter克隆,可以实现Microblog的常用功能,国外不少微博客系统都是通过这个开源系统架设的。

分类:前端开发 标签:, ,

记录WordPress评论者信息

自从上传成功修改WP,打造属于自己的个性关键词和描述 后, 也就消除了我对wordpress心理障碍,对wordpress和php的兴趣也是与日俱增,现在发现wordpress有很多预想不到的功能,越来越喜欢她啦。为了完善本博客,提高访客体验,最近真是花了不少时间,不过刚好是春节放假期间,有的是时间研究。不过话说回来,自从给自己的 WordPress 引入 JQuery 后,测试数据证明网站速度略有迟缓,但是为了更好的访客体验,增加更多的回头率,只好稍微牺牲一下速度,尽力在网站效果和速度之间找到一个平衡 点,使之完美。

下面的方法参考了网上的博文和资料,在此记录提供给和我一样需要的人使用,拿来转载一下:

首先,我们要编辑 comments.php,在类似于:

<input type="text" name="author"  id="author" value="<?php echo $comment_author; ?>" size="22" tabindex="1"/>

在评论者姓名输入框代码上方添加:

<?php  if ( $comment_author != ""  ) : ?>
<div id="welcome">
<?php printf(__('欢迎 <strong>%s</strong> 归来! '), $comment_author) ?>
</div>
<?php endif; ?>

然后再把三个评论者姓名、电邮、网址的代码输入框用

包起来,到此,comments.php 修改结束;

然后,新建一个名为 infohide 的 js 文件,把以下代码放进去:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$(document).ready(function() { //开始
if($('input#author[value]').length>0){ //判断用户框是否有值
$("#author_info").css('display','none'); //将id为author_info的对象的display属性设为none,即隐藏
var change='<span id="show_author_info" style="cursor: pointer; color:#2970A6;">change &raquo;</span>'; //定义change,style是定义CSS样式,让他有超链接的效果,color要根据你自己的来改,当然你也可以在CSS中定义#show_author_info来实现,这样是为了不用再去修改style.css而已!
var close='<span id="hide_author_info" style="cursor: pointer;color: #2970A6;">close &raquo;</span>'; //定义close
$('#welcome').append(change); //在ID为welcome的对象里添加刚刚定义的change
$('#welcome').append(close); // 添加close
$('#hide_author_info').css('display','none'); //隐藏close
$('#show_author_info').click(function() { //鼠标点击change时发生的事件
$('#author_info').slideDown('slow'); //用户输入框向下滑出
$('#show_author_info').css('display','none'); //隐藏change
$('#hide_author_info').css('display','inline'); //显示close
$('#hide_author_info').click(function() { // 鼠标点击close时发生的事件
$('#author_info').slideUp('slow'); //用户输入框向上滑
$('#hide_author_info').css('display','none'); //隐藏close
$('#show_author_info').css('display','inline'); })})}}) //显示change

保存文件至主题目录下。

最后,在 footer.php 中引用 JQuery 和以上 infohide.js:

1
2
3
4
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></script>
<?php if ( is_singular() ){ ?>
<script type="text/javascript" src="<?php bloginfo('template_url'); ?>/infohide.js"></script>
<?php } ?>

友情提醒:载入 JQuery 和 JS 的顺序一定不能搞错,否则就不成功了。至此,用 JQuery 隐藏回头访客资料输入框就完成了,童鞋快留言试试吧!

分类:前端开发 标签:

在网站中使用图片延迟加载来增强用户体验

大家有没有发现,在你使用本站的时候,当你向下拉动滚动条时下面的文章缩略图才开始加载?这是一个比较不错的用户体验。就是说网站打开的时候不会一下子把所有的图片都加载出来,当拉动滚动条后用户看到了才会显示。

前不久淘宝网站新版上线,我特别去看了下,其中我就有注意到它的一个功能,当搜索商品时显示的商品列表页,整页的图片不是一下子全部加载,而是当用户拉动滚动条后看到的区域才加载图片。对于一个像淘宝这样的一个数据量很大,图片很多的网站来说,才用这种图片延迟加载,减少了页面加载的时间了,也减轻了服务器的压力,最重要的是得到了友好的用户体验感。

这个大家可以去搜索试试看,当然在本站你也可以拉动并主要文章缩略图的加载。其实这个效果实现已经有人为我们写好啦,百度了一下,你就能找到了一个jquery的实现这种效果的插件:jquery.lazyload,一个很不错的插件。

如果你是图片网站,而且一个页面要加载很多图片,这个插件是个很不错的选择。

 使用方法,引用如下js:

1
2
<script src="jquery.js" type="text/javascript"><!--mce:0--></script>
<script src="jquery.lazyload.js" type="text/javascript"><!--mce:1--></script>

在你的页面中加入如下的javascript:

1
$("img").lazyload();

这将会使所有的图片都延迟加载。插件还有几个配置项可供设置。

当然对于一些用户来说就上面的功能远远是不能达到要求的,下面我们看看是如何设置灵敏度的。我们可以设置阀值来控制 这个功能比较人性化吧。

1
$(“img”).lazyload({ threshold : 200 });

把阀值设置成200 意思就是当图片没有看到之前先load 200像素。当然了你也可以通过设置占位符图片和自定事件来触发加载图片事件

1
2
3
4
$("img").lazyload({
placeholder : "img/grey.gif",
event : "click"
});

我们还可以通过定义effect 参数来定义一些图片显示效果

1
2
3
4
$("img").lazyload({
placeholder : "img/grey.gif",
effect : "fadeIn"
});

下载地址: source, minified or packed

分类:前端开发 标签:

修改WP,打造属于自己的个性关键词和描述

最近一直在研究WP系统,确实很好很强大,但是拿到这个系统的时候发现竟然没有加关键词和描述META。如果你只是把keywords和description加到头部,那么整个网站都是千篇一律的keywords、description,这对于搜索引擎是非常不友好的。不过很快我就发现了她的“自定义字段”这个功能,难怪她会成为世界上最受欢迎的博客框架,很多的灵活性扩展确实很强大。

下面我们就利用她的这个功能,打造属于自己的个性META。

首先在添加文章的时候添加一个自定义域,名称中输入MetaKeywords,在后面的值中添加你需要的文章关键词。大家有主要到下面有个链接吧,“在主题中使用它们”,点击后跳转到WP官网的一个参数说明页,都是英文的,不要紧,在页面的最后我们可以看到关于这个自定义域的调用方法。

这里我把代码写好啦,把下面的代码复制到头部文件的Meta中。

1
2
3
4
5
6
7
<meta name="keywords" content="
<?php if (is_category()) {
    echo single_cat_title();}
elseif (get_post_meta($post->ID, "MetaKeywords", true)) 
{echo get_post_meta($post->ID, "MetaKeywords", true);}
else {echo ('SEO优化探索,SEM,Web前端开发,网站建设,网络营销,用户体验,搜索引擎优化');}?> 
">

很好,很强大。写到这我整个人都斯巴达了。这段代码看似有点复杂,实际很简单,它先检测有没有MetaKeywords这个自定义字段,如果存在则显示,如果没有则显示“SEO优化探索,SEM,Web前端开发,网站建设,网络营销,用户体验,搜索引擎优化”这段话。其中的is_category()是栏目页的时候输出,使用echo single_cat_title();可以输出栏目名称,如果不加这个判断,当点击栏目的时候,页面的META会调用第一条文章的META。

同样,通过这个方式,在头部替换description。到此,你就可以在每一篇文章都有属于自己的关键词和描述啦。

当前页 3 总页 3123
云南网站建设昆明网站建设信得过品牌。结合5年多的网站运营经验,为您打造最优质的网站推广平台。是你身边最贴切的网站运营专家。
关于我们
我们的服务
成功案例
网站地图
联系我们

全国免费服务电话:
400-642-6482
给我们发送邮件:
service@lvegu.net

昆明网站建设公司 Copyright © 2008-2011. 云南略谷网络科技有限公司 版权所有