一切福田,不離方寸,從心而覓,感無不通。

Category Archives: Backend

电子商务网站的10个易用性规则

利好网-IT频道 电子商务网站的竞争越来越激烈虽然你可能在以最低的价格卖最好的东西但同样重要的的是用户的购买体验对电子商务网站而言易用性就是让用户尽可能快而简单的完成购买有时候一条小小的改进可能带来巨大的改变。原本讲述了10条电子商务网站的易用性规则。 1. 用户无需注册直接购买 很多公司嗜好让用户注册但注册过程实在太冗长了尤其对那些临时光顾的用户强迫注册会将他们吓跑。让用户直接往购物车里添加货物在结算前另外提供一个注册选项以方便他们的下一次购买是一个很有效的方法在任何时候都要明白实现销售比收集一堆电子邮件地址更有价值。 2. 注册要简单 你希望注册用户给你提供多少信息?也许是越多越好然而实际上你用不了那么多你真正需要的也许只是一个邮件地址和一个密码。尽可能使用邮件地址作为用户名因为用户名容易混淆而邮件地址是唯一的更容易记忆。 3. 告诉用户他们所处的步骤 面包屑导航条是任何大型电子商务站点的必需用户需要随时知道他们目前所处的步骤以及后面余下的步骤否则用户会觉得茫然甚至半途放弃。另外面包屑导航条还可以帮助用户自由后退返回以便在需要的时候对前面的操作进行修改如果面包屑导航条不容易实现那你至少对每一步操作进行编号标识如第一步/共四步。 4. 让用户有安全感 用户对安全非常在意尤其当他们需要输入信用卡号的时候在用户购买的任一步骤你都需要让他们有安全感并且让他们知道你会保护他们的安全与隐私最好的办法是在网站上部署 SSL。 5. 订单确认 确认页对一个电子商务网站的易用性来讲非常必要不仅可以让用户对前面操作的内容进行确认也避免了用户因不确定而不断向你查询。 一个有效的确认操作包含以下三个部分: 订单处理的最后一步让用户进行确认确认页应该包含所有必要的信息订单概要总价格发货信息以及订单取消按钮。 订单一旦确认用户会看到订单确认信息以及订单号这些信息可以保存和打印。 同时应该使用电子邮件将订单确认信息发给用户留档。 6. 搜索功能 任何电子商务网站需要一个随时可见的搜索框用户可以对结果进行筛选搜索功能可以让用户更好地查找商品提供更愉快的体验。如果你的商品种类繁多搜索应该支持按类别筛选。允许用户按颜色尺码进行搜索也不失一个好方法另外也可以让用户定制自己的搜索结果如每页显示多少条结果。 7. 列出相关产品 如果处理得当列出相关产品可以带来交叉销售比如用户购买电子产品的时候可以列出与该产品相关的电池线缆等配件Amazon 证明该方法十分有效。 8. 行动按钮(Call-to action button) 不要低估了那些行动按钮的力量“添加到购物篮”“注册”“结算”一类的按钮可以提高你的成交率和易用性。要想让这些按钮吸引人需要在字体颜色措辞位置等方面仔细揣度按钮应该足够大清晰色彩应该同背景形成对比。在措辞方面应该使用“添加到购物篮”而不是“立即购买”后者会吓跑某些用户。应该考虑使用本地化语言比如美国用户更习惯“添加到购物车”而英国用户习惯“添加到购物篮”。如果可能可以使用 IP 区分客户的来源以便针对不同地区的用户提供不同的本地化语言。 9. 避免隐匿费用 隐匿费用比任何东西都让客户愤怒一定将价格税快递费用以及可能有的优惠明明白白地显示给用户而且越早越好人们嗜好在添加货品到购物篮之前就知道它们需要多少钱。如果在结算之前发现多出来很多额外费用他们会放弃订单且不会再来。 10. 让购物车随时可见 购物车应当随时可见应当浮显在右上方。这样用户不必滚动页面去浏览里面的货品和总价。为了更好地体现易用性应当允许用户在任何时候都可以修改添加或移除货品。“结算按钮”应当直接放在购物车内方便快速造访。 本文国际来源:spyrestudios.com 10 Steps To A More Usable Ecommerce Website (原文作者:Tom Walker) 转自:http://www.zhongshi.tv/it/teach/wy/14208.shtml

龙生   23 Nov 2013
View Details

搜狐畅游首发免费3D开源游戏引擎Genesis-3D

搜狐畅游在京召开新闻发布会,正式推出首款免费3D开源手机游戏引擎——Genesis-3D,官网www.genesis-3d.com.cn 也正式启用,并向全球开发者开放SDK包下载。Genesis-3D可以面向iOS、Android、WinPhone、Web端、PC端等系统或平台,提供一键打包发布工具,真正做到一套代码多平台发布的目的。 据介绍,Genesis-3D是国内首款自主研发的跨平台游戏引擎,由搜狐畅游耗时4年;投资3000万美元;组建百人研发团队完成。Genesis-3D在极大的节省开发成本的同时,还大大降低了研发门槛。 【搜狐畅游技术总监 靳超】 “这款引擎的易用性极强,我们希望使用我们产品的开发团队可以把更多的精力放到游戏性研发上,帮助他们快速上线有创意的产品。” Genesis-3D项目负责人、搜狐畅游技术总监靳超说到。 【Genesis-3D产品总监 王兴博】 会上,Genesis-3D产品总监 王兴博还介绍了Genesis-3D游戏引擎的五大核心优势: 1、国内顶级品质。Genesis-3D在核心技术参数上与国际一流引擎看齐,内置美术素材、具有强大扩展性,支持全3D,并可向下兼容2D,可完美地实现一套代码覆盖PC单机、网页、微端、iOS、Android、WinPhone等多个平台; 2、免费开源体验。相对目前市面上已有的移动游戏引擎高昂的授权金和游戏分成,畅游承诺将这款引擎免费提供给开发者使用; 3、操作简单易用,支持多人协作。畅游Genesis-3D支持中英文一键切换及可视化模式,更适合中国的开发者; 4、一流服务保障。畅游不仅为开发者提供多种游戏框架,研发与运营支持,而且还提供相应的品牌、资金及技术支持; 5、适合中国市场。畅游为开发者提供本土化技术支持,反应更加迅速,并且提供从研发到上线的一站式解决方案。 【动漫北京智慧谷大学生App创新创业大赛策划人 王立群致贺辞】 据介绍,在Genesis-3D平台,开发者还可以根据自身需求选择多项服务支持,如:24小时在线技术咨询、特定功能定制、强大的社区资源、优先代理运营、整合产业资源、技术培训、免费支付渠道、海外市场推广和免费市场分析。 【文化部文化市场司网络处处长 李建伟致贺辞】 2013年是全球移动游戏爆发性增长的一年,据艾瑞咨询的统计数据显示,移动游戏领域全年市场规模预计达到91.9亿元,同比增长371.1%,远高于客户端游戏市场15%的平均增长率。 “我们知道手游市场很火,发布这款引擎就是来‘火上浇油’的,畅游给引擎开发团队定的目标不是能赚多少钱,而是能帮助多少开发者做出伟大的产品。”畅游CIO潘文娟表示,“畅游有实力和能力持续向Genesis-3D项目投入精力,帮助上游的中小移动游戏开发团队,建立完整而健康的中国移动游戏生态圈。” 【Genesis-3D现场发布仪式】 据介绍,目前畅游在研的移动游戏有30款左右,其中有多款游戏基于Genesis-3D开发。畅游除了在引擎技术上向开发商提供支持,在运营上畅游也非常希望能与上游研发商合作,对采用Genesis-3D引擎的产品,后期可以考虑提供优先运营及优先授权IP等多种合作。 【搜狐畅游与星游天罡现场签约仪式】 在发布会现场,搜狐畅游与北京至乐天下、星游天罡等多家手机游戏开发公司签署了合作协议,后者将采用Genesis-3D引擎进行相关游戏的研发。同时,还有多家游戏公司与搜狐畅游签署了意向书,为后续合作奠定了基础。 Genesis-3D 的详细介绍:请点这里 Genesis-3D 的下载地址:请点这里 想通过手机客户端访问开源中国:请点这里 转自:http://www.oschina.net/news/46179/genesis-3d

龙生   23 Nov 2013
View Details

Google Spark

Spark 是谷歌公司推出的一款基于 Chrome 浏览器的开发环境。提供一组可重用的 UI 组件。采用 Dart 开发。 安装方法请看:https://github.com/dart-lang/spark/tree/master/ide 转自:http://www.oschina.net/p/google-spark

龙生   23 Nov 2013
View Details

Nginx 战斗准备 —— 优化指南

大多数的Nginx安装指南告诉你如下基础知识——通过apt-get安装,修改这里或那里的几行配置,好了,你已经有了一个Web服务器了!而且,在大多数情况下,一个常规安装的nginx对你的网站来说已经能很好地工作了。然而,如果你真的想挤压出nginx的性能,你必须更深入一些。在本指南中,我将解释Nginx的那些设置可以微调,以优化处理大量客户端时的性能。需要注意一点,这不是一个全面的微调指南。这是一个简单的预览——那些可以通过微调来提高性能设置的概述。你的情况可能不同。 基本的 (优化过的)配置 我们将修改的唯一文件是nginx.conf,其中包含Nginx不同模块的所有设置。你应该能够在服务器的/etc/nginx目录中找到nginx.conf。首先,我们将谈论一些全局设置,然后按文件中的模块挨个来,谈一下哪些设置能够让你在大量客户端访问时拥有良好的性能,为什么它们会提高性能。本文的结尾有一个完整的配置文件。 高层的配置 nginx.conf文件中,Nginx中有少数的几个高级配置在模块部分之上。 1 user www-data; 2 pid /var/run/nginx.pid; 3 4 worker_processes auto; 5 6 worker_rlimit_nofile 100000; user和pid应该按默认设置 – 我们不会更改这些内容,因为更改与否没有什么不同。 worker_processes 定义了nginx对外提供web服务时的worder进程数。最优值取决于许多因素,包括(但不限于)CPU核的数量、存储数据的硬盘数量及负载模式。不能确定的时候,将其设置为可用的CPU内核数将是一个好的开始(设置为“auto”将尝试自动检测它)。 worker_rlimit_nofile 更改worker进程的最大打开文件数限制。如果没设置的话,这个值为操作系统的限制。设置后你的操作系统和Nginx可以处理比“ulimit -a”更多的文件,所以把这个值设高,这样nginx就不会有“too many open files”问题了。 Events模块 events模块中包含nginx中所有处理连接的设置。 1 events { 2     worker_connections 2048; 3     multi_accept on; 4     use epoll; 5 } worker_connections设置可由一个worker进程同时打开的最大连接数。如果设置了上面提到的worker_rlimit_nofile,我们可以将这个值设得很高。 记住,最大客户数也由系统的可用socket连接数限制(~ 64K),所以设置不切实际的高没什么好处。 multi_accept 告诉nginx收到一个新连接通知后接受尽可能多的连接。 use 设置用于复用客户端线程的轮询方法。如果你使用Linux 2.6+,你应该使用epoll。如果你使用*BSD,你应该使用kqueue。想知道更多有关事件轮询?看下维基百科吧(注意,想了解一切的话可能需要neckbeard和操作系统的课程基础) (值得注意的是如果你不知道Nginx该使用哪种轮询方法的话,它会选择一个最适合你操作系统的) HTTP 模块 HTTP模块控制着nginx http处理的所有核心特性。因为这里只有很少的配置,所以我们只节选配置的一小部分。所有这些设置都应该在http模块中,甚至你不会特别的注意到这段设置。 01 http { 02 03     server_tokens off; 04 05     sendfile on; 06 07     tcp_nopush on; 08     tcp_nodelay on; 09 10     … 11 } server_tokens 并不会让nginx执行的速度更快,但它可以关闭在错误页面中的nginx版本数字,这样对于安全性是有好处的。sendfile可以让sendfile()发挥作用。sendfile()可以在磁盘和TCP socket之间互相拷贝数据(或任意两个文件描述符)。Pre-sendfile是传送数据之前在用户空间申请数据缓冲区。之后用read()将数据从文件拷贝到这个缓冲区,write()将缓冲区数据写入网络。sendfile()是立即将数据从磁盘读到OS缓存。因为这种拷贝是在内核完成的,sendfile()要比组合read()和write()以及打开关闭丢弃缓冲更加有效(更多有关于sendfile) tcp_nopush 告诉nginx在一个数据包里发送所有头文件,而不一个接一个的发送 tcp_nodelay 告诉nginx不要缓存数据,而是一段一段的发送--当需要及时发送数据时,就应该给应用设置这个属性,这样发送一小块数据信息时就不能立即得到返回值。 1 access_log off; 2 error_log […]

龙生   23 Nov 2013
View Details

nginx 安全漏洞 (CVE-2013-4547)

这是来自 Nginx 邮件列表的内容: Nginx 的安全限制可能会被某些请求给忽略,(CVE-2013-4547). 当我们通过例如下列方式进行 URL 访问限制的时候,如果攻击者使用一些没经过转义的空格字符(无效的 HTTP 协议,但从 Nginx 0.8.41 开始因为考虑兼容性的问题予以支持)那么这个限制可能无效: 1 location /protected/ { 2         deny all; 3     } 当请求的是 "/foo /../protected/file" 这样的 URL (静态文件,但 foo 后面有一个空格结尾) 或者是如下的配置: 1 location ~ \.php$ { 2         fastcgi_pass … 3     } 当我们请求 "/file \0.php" 时就会绕过限制。 该问题影响 nginx 0.8.41 – 1.5.6. 该问题已经在 Nginx 1.5.7 和 1.4.4 版本中修复。 补丁程序在: http://nginx.org/download/patch.2013.space.txt 配置上临时的解决办法是: 1 if ($request_uri ~ " ") { 2         return 444; 3     } 转自:http://www.oschina.net/question/12_133891

龙生   23 Nov 2013
View Details

Eclipse 3.7 / Indigo / PDT 3.0

From Update Site Prerequisites Installed and running Eclipse Classic 3.7 The minimum package is Eclipse Platform Runtime Binary. It is available at here Any packages in Eclipse Downloads page are available also. Installation Flow Open Help -> Install New Software. Select the Indigo update site. When the list of existing features is populated – select 'PHP Development Tools'. Make sure 'Contact all update sites…' is checked. Proceed with the installation by pressing 'Next', then press 'Next' again in the next screen. Accept the EULA when asked: Finish the […]

龙生   21 Nov 2013
View Details

android虚拟机如何安装应用程序

1、搭建好android开发环境 2、启动android虚拟机(Eclipse下启动也可) 3、Windows系统打开cmd,进入android-sdk-windows\platform-tools目录 4、输入 adb install xxx.apk ;注意cmd下安装时不要使用中文,避免发生错误 5、刷新android虚拟机桌面,测试该应用程序   在android虚拟机中安装文件管理器后,即可进入文件管理操作; 在电脑上下载安装包 xxx.apk 后安装该软件到android虚拟机中,再借助文件管理器进行更简便的安装操作 转自:http://wu110cheng.blog.163.com/blog/static/133349654201232242429902/

龙生   20 Nov 2013
View Details

解决SQLServer中变更海量数据表结构时产生【无法修改表. Timeout 时间已到. 在操作完成之前超时时间已过或服务器未响应. 】

【解决办法】:  工具->选项>设计器->表设计器和数据库设计器->右侧勾选“为表设计器更新重写连接字符串的超时值”,在它下面的“事务超时时间”默认应该是 30 秒,改得稍微大一些,不过好像不能超过65535. 转自:http://blog.csdn.net/abandonship/article/details/8516541

龙生   18 Nov 2013
View Details

ASP.NET实现二维码(QRCode)的创建和读取

QR二维码比其他二维码相比,具有识读速度快、数据密度大、占用空间小的优势。QR码的三个角上有三个寻象图形,使用CCD识读设备来探测码的位置、大小、倾斜角度、并加以解码,实现360度高速识读。每秒可以识读30个含有100个字符QR码。QR码容量密度 大,可以放入1817个汉字、7089个数字、4200个英文字母。QR码用数据压缩方式表示汉字,仅用13bit即可表示一个汉字,比其他二维条码表示汉字的效率提高了20%。QR具有4个等级的纠错功能,即使破损也能够正确识读。QR码抗弯曲的性能强,通过QR码中的每隔一定的间隔配置有校正图形,从码的外形来求得推测校正图形中心点与实际校正图形中心点的误差来修正各个模快的中心距离,即使将QR码贴在弯曲的物品上也能够快速识读。QR码可以分割成16个QR码,可以一次性识读数个分割码,适应于印刷面积有限及细长空间印刷的需要。此外微型QR码可以在1厘米的空间内放入35个数字或9个汉字或21个英文字母,适合对小型电路板对ID号码进行采集的需要。(From:http://tuqiang9999.blog.163.com/blog/static/33241320111115103159542/) QRCode下载地址:ThoughtWorks.QRCode(支持中文)   一、项目引用QRCode的DLL文件(ThoughtWorks.QRCode.dll) 二、ASPX页面(两个jquery的js文件请自行去官网下载): <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server">     <title>二维码工具测试</title>     <script type="text/javascript" src="../../Scripts/Jquery/jquery-1.6.2.js"></script>     <script type="text/javascript" src="../../Scripts/Jquery/jquery.form.js"></script>     <script type="text/javascript" src="js/test.js"></script>     <style type="text/css">         .style1         {             width: 100%;         }         #txt_qr         {             width: 632px;         }     </style> </head> <body>     <div>         <table class="style1">             <tr>                 <td>                     输入文字:                 </td>                 <td>                     <input type="text" id="txt_qr" name="txt_qr" />                 </td>             </tr>             <tr>                 <td>                     二维码图片                 </td>                 <td>                     <img id="qrimg" alt="二维码图片" />                 </td>             </tr>             <tr>                 <td>                     生成选项                 </td>                 <td>                     Encoding:<select id="Encoding">                         <option value="Byte">Byte</option>                         <option value="AlphaNumeric">AlphaNumeric</option>                         <option value="Numeric">Numeric</option>                     </select>                     Correction Level:<select id="Level">                         <option value="M">M</option>                         <option value="L">L</option>                         <option value="Q">Q</option>                         <option value="H">H</option>                     </select>                     Version:<input id="txt_ver" type="text" value="7" />(1-40) Size:<input id="txt_size"                         type="text" value="4" />                 </td>             </tr>             <tr>                 <td colspan="4">                     <input type="button" onclick="getQrImg();" value="生成二维码" />                 </td>             </tr>             <tr>                 <td>                     <form id="qrForm" action="Ashx/test.ashx" method="post" enctype="multipart/form-data">                     <input type="file" id="file_qr" name="file_qr" /><input type="submit" value="读取二维码" />                     </form>                 </td>                 <td colspan="1">                     <img id="img_qr" alt="要读取的图片" /><br />                     <input id="txt_readqr" type="text" />                 </td>             </tr>         </table>     </div> </body> </html> 三、test.js文件 [javascript] $(document).ready(function () {     var options = {         beforeSubmit: showRequest, […]

龙生   14 Nov 2013
View Details

MVC Razor模板引擎 @RenderBody、@RenderPage、@RenderSection及Html.RenderPartial、Html.RenderAction

一、Views文件夹 -> Shared文件夹下的 _Layout.cshtml 母版页 @RenderBody 当创建基于_Layout.cshtml布局页面的视图时,视图的内容会和布局页面合并,而新创建视图的内容会通过_Layout.cshtml布局页面的@RenderBody()方法呈现在标签之间。   @RenderPage 从名称可以猜出来这个方法是要呈现一个页面。比如网页中固定的头部可以单独放在一个共享的视图文件中,然后在布局页面中通过这个方法调用,用法如下: @RenderPage(“~/Views/Shared/_Header.cshtml”) 带参数 @RenderPage(“~/Views/Shared/_Header.cshtml”,new{parm="my",parm2="you") 调用页面获取参数: //获取 RenderPage() 传递过来的参数 @PageData["param"]   @RenderSection 布局页面还有节(Section)的概念,也就是说,如果某个视图模板中定义了一个节,那么可以把它单独呈现出来 为了防止因缺少节而出现异常,可以给RenderSection()提供第2个参数: @RenderSection("head", false) 或 @if (IsSectionDefined("head")) { @RenderSection("head", false) } else { <p>SubMenu Section is not defined!</p> }   代码如下: [html] view plaincopy <!DOCTYPE html> <html> <head>     <title>@ViewBag.Title</title>     <link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />     <script src="@Url.Content("~/Scripts/jquery-1.4.4.min.js")" type="text/javascript"></script>     @RenderSection("head", required: true)@*View页面自定义特定js/css使用*@ </head> <body>     @RenderPage("~/Views/Shared/_Header.cshtml")     @RenderBody() </body> </html>   二、创建视图,使用母版页 代码如下: [html] view plaincopy @{     ViewBag.Title = "Index";     Layout = "~/Views/Shared/_Layout.cshtml"; } <h2>Index</h2> @section Head{     <script type="text/javascript">         $(function () {             alert("hello jquery");         });     </script> } <p>执行C#普通语法</p><br /> @DateTime.Now.Date.ToShortDateString() <p>执行C#语句段</p> @{     List<string> list = new List<string> { "Mvc3", "Razor" };     list.Add(".Net4"); } <ul> @foreach(string s in list) {     if (string.IsNullOrEmpty(s))     {        <li>空</li>     }     else […]

龙生   14 Nov 2013
View Details
1 232 233 234 279