大流量网站的底层系统架构

动态应用,是相对于网站静态内容而言, 是指以c/c++、php、Java、perl、.net等 服务器端语言开发的网络应用软件,比如论坛、网络相册、交友、BLOG等常见应用。动态应用系统通 常与数据库系统、缓存系统、分布式存储系统等密不可分。 大型动态应用系统平台主要是针对于大流 量、高并发网站建立的底层系统架构。大型网站的运行需要一个可靠、安全、可扩展、易维护的应用系统平台做为支撑,以保证网站应用的平稳运行。 大型动态应用系统又可分为几个子系统: Web前端系统 负载均衡系统 数据库集群系统 缓存系统 分布式存储系统 分布式服务器管理系统 代码分发系统 Web前端系统 结构图:   为了达到不同应用的服务器共享、避… Read More

大型高并发高负载网站的系统架构

一个小型的网站,可以使用最简单的html静态页面就实现了,配合一些图片达到美化效果,所有的页面均存放在一个目录下,这样的网站对系统架构、性能的要求都很简单。随着互联网业务的不断丰富,网站相关的技术经过这些年的发展,已经细分到很细的方方面面,尤其对于大型网站来说,所采用的技术更是涉及面非常广,从硬件到软件、编程语言、数据库、WebServer、防火墙等各个领域都有了很高的要求,已经不是原来简单的html静态网站所能比拟的。 大型网站,比如门户网站,在面对大量用户访问、高并发请求方面,基本的解决方案集中在这样几个环节:使用高性能的服务器、高性能的数据库、高效率的编程语言、还有高性能的Web容器。这几… Read More

【jQuery】smartMenu右键自定义上下文菜单插件(似web QQ)

DEMO: http://sources.ikeepstudying.com/menu-mail-qq/   一、这是什么样的一个插件 我们都知道,默认状态下,我们右键web页面,会出现一个上下文菜单,例如下图: 但是,浏览器默认的右键选项有时候并不是我们所需要的,我们希望浏览器的右键选项菜单更智能,可以灵活自定义。比较有代表性的就是web QQ,例如下面截图: QQ邮箱中也是有此功能。 显然这种东西貌似还是蛮强大与实用的,于是我就抽空写了个可以右键自定义上下文菜单的jQuery插件 – smartMenu,直接一行代码绑定,就可以让我们轻松实现页面元素的自定义上下文功能。至于具体如何实用与绑定,就是… Read More

Web流程图绘制使用raphael

摘要:本文要实现一个流程图的绘制,最终的目标是实现流程图的自动绘制,并可进行操作,直接点击流程图上对应的方框就可以让后台跑相应的程序。 一、插件介绍 1、图形绘制raphael 其中图形绘制使用了raphael,下载地址:http://raphaeljs.com,它的功能非常强大。 中文帮助教程:http://html5css3webapp.com/raphaelApi.htm#Paper.text 其中有一些DEMO如下: 2、鼠标右键菜单栏弹出smartMenu 教程及下载地址:【jQuery】smartMenu右键自定义上下文菜单插件(似web QQ) 3、字体大小变化利器插件jquery.fontFle… Read More

密码等级:至少包含字母、大小写数字、字符中的两种 JS实现方案

前言 密码,如果设置的太简单,很容易就被攻破,所以很多网站将密码设置的要求设置的挺严格,一般是字母、数字、字符3选2,区分大小写。对于设置得太简单的密码,予以错误提示。或者予以密码等级(低中高)显示,让用户设置高级密码。那如何利用JS实现呢? 代码 链接:https://gist.github.com/xuanfeng/a44f20cb4569d5b4cd5e function passwordLevel(password) { var Modes = 0; for (i = 0; i < password.length; i++) { Modes |= CharMode(password.charCodeAt(i)); } retu… Read More

JS针对图片加载及404处理

前言 网站运营久了之后,无法避免会出现图片404的情况,原因可能是图片文件本来就不存在或目前不存在。常见的解决方案是将404图片隐藏或者是替换为默认的图片。 img标签事件属性 img标签可使用的时间属性有: onabort, onbeforeunload, onblur, onchange, onclick, oncontextmenu, ondblclick, ondrag, ondragend, ondragenter, ondragleave, ondragover, ondragstart, ondrop, onerror, onfocus, onkeydown, onkeypress, onkeyup, onload, onme… Read More

javascript基本数据类型与值类型引用类型说明

DEMO: http://sources.ikeepstudying.com/jsdata/ 摘要:本文主要讲了javascript中的基本数据类型,以及值类型和引用类型的区别与使用 一、基本数据类型 在javascript中申明变量使用的关键字都是var,这点与其他的编程语言不尽相同,但是javascript亦含有五种基本的数据类型(也可以 说是简单数据类型),它们分别是:Undefined,Null,Boolean,Number和String。还含有一种复杂数据类型—Object。 (1)、”undefined”——未申明,或者变量的值即为undefined或者未初始化; (2)… Read More

JS数组去重算法实现

1.遍历数组法 最简单的去重方法, 实现思路:新建一新数组,遍历传入数组,值不在新数组就加入该新数组中;注意点:判断值是否在数组的方法“indexOf”是ECMAScript5 方法,IE8以下不支持,需多写一些兼容低版本浏览器代码,源码如下: // 最简单数组去重法 function unique1(array){ var n = ; //一个新的临时数组 //遍历当前数组 for(var i = 0; i < array.length; i++){ //如果当前数组的第i已经保存进了临时数组,那么跳过, //否则把当前项push到临时数组里面 if (n.indexOf(array[i]) == -1) n.push(array[i… Read More

wordpress二次开发技巧-functions.php篇

前言 最近又写了个网站,也是基于wordpress,LEE周刊官网:www.leeweekly.com。这个网站和轩枫阁的部分功能有所不同,部分功能困扰了挺久,通过Google搜索到了各种解决方案,记录成文备忘。 LEE周刊新版PC官网设计开发总结:http://t.cn/RyzrUD4 functions.php 下面根据需求,对各种能实现进行简单介绍。 先对functions.php文件进行介绍,通过代码实现各功能。 1. widgets sidebar 侧边栏小工具 /** widgets sidebar 侧边栏小工具*/ if( function_exists('register_sidebar'<span… Read More

使用SourceTree

SourceTree是个git的GUI软件。 教程将“使用Git”那个小节可视化,更为直观。 第一次启动的时候选择忽略,然后直接进入界面。 填入git地址与注册邮箱即可 例如mindset这本书的git地址是:http://182.92.1.69:10080/openmind/mindset.git 其它的书,仿照这种格式,将mindset.git替换成相应名字即可,可在书籍管理界面找到git地址 注意:请新建一个独立的空文件夹,如图中的“reading”,防止文档混乱,增加学习成本和出错概率。 完成后是这样 进入主界面 这时候可以在本地文件夹中操作,任何操作,sourcetree都会察觉到,然后显示在窗口,这… Read More

使用js实现思维导图

本文主要阐述使用js实现思维导图的关键技术点,如果还不知道什么是思维导图的同学,请自行度娘。以下是demo和源码的传送门: demo:http://sources.ikeepstudying.com/mindmaptree-master/ 源码:http://github.com/RockyRen/mindmaptree/tree/master 下载:mindmaptree-master 在源码中我使用了svg绘制思维导图。与canvas相比,svg将图像当成对象,我们可将思维导图中节点和线等图形表现为对象,而且svg更适合用于动态交互的应用 下面介绍几个关键技术点: 子节点位置的重绘 一个基本的思维导图工… Read More

JavaScript数据结构和算法简述——数组

为什么先讲数组 数据结构可以简单的被分为线性结构和非线性结构。 线性结构大致包括: 数组(连续存储); 链表(离散存储); 栈(线性结构常见应用,由链表或数组增删和改进功能实现); 队列(线性结构常见应用,由链表或数组增删和改进功能实现); 非线性结构大致包括: 树; 图; 其中,数组是应用最广泛的数据存储结构。它被植入到大部分编程语言中。由于数组十分容易懂,所以它被用来作为介绍数据结构的起点非常合适。 JavaScript数组基础知识 在ECMAScript中数组是非常常用的引用类型了。ECMAScript所定义的数组和其他语言中的数组有着很大的区别。那么首先要说的就是数组在js中是一种特殊的对象。 特点: 数组是一组… Read More

JavaScript数据结构和算法简述——前言

为什么要使用数据结构和算法(程序=数据结构+算法)         数据结构是对在计算机内存中(有时在磁盘中)的数据的一种安排。包括数组、链表、栈、二叉树、哈希表等。        算法是对这些结构中的数据进行各种处理。比如,查找一条特殊的数据项或对数据进行排序。 举一个简单的索引卡的存储问题,每张卡片上写有某人的姓名、电话、住址等信息,可以想象成一本地址薄,那么当我们想要用计算机来处理的时候,问题来了: 如何在计算机内存中安放数据? 所用算法适用于100张卡片,很好,那1000000张呢? 所用算法能够快速插入和删除新的卡片吗? 能够快速查找某一张卡片吗? 如何将卡片按照字母进行排序呢? 事实上,大多数程序… Read More

jQuery实现多条件筛选

我们在电商平台购买商品时,在商品列表页根据品牌、款式、价格范围等条件进行筛选查询,当点击某个条件时,在页面上会显示用户所选择的条件集合,并且将对应的符合条件的商品信息展示出来。那么今天我们使用jQuery来实现这一前端效果。 查看演示下载源码 HTML 首先,我们将查询条件分类,在页面中布置条件容器li.select-list和已选择的条件容器div.select-result。 <ul class="select"> <li class="select-list"> <dl id="select1"> <dt>上装:</dt>