首页 文章 精选 留言 我的

精选列表

搜索[镜像无法拉取],共10000篇文章
优秀的个人博客,低调大师

常用省市区刷新联动实例

1、jquery代码 function getCity(CityVal) { var DDL_Province = $("#DDL_Province"); var DDL_City = $("#DDL_City"); DDL_City.empty(); DDL_City.append("<option value=\"0\">市/区</option>"); $.ajax( { type: "post", url: "/UserCart/Controller/CityAreas.ashx", data: { "type": "city", "provinceID": DDL_Province.val() }, dataType: "json", async: false, success: function (msg) { for (var i = 0; i < msg.length; i++) { if (CityVal == msg[i].CityName) { if (msg[i].IsCOD == 1) { DDL_City.append("<option value=" + msg[i].CityID + " selected=\"selected\">" + msg[i].CityName + "*</option>"); } else { DDL_City.append("<option value=" + msg[i].CityID + " selected=\"selected\">" + msg[i].CityName + "</option>"); } } else { if (msg[i].IsCOD == 1) { DDL_City.append("<option value=" + msg[i].CityID + " >" + msg[i].CityName + "*</option>"); } else { DDL_City.append("<option value=" + msg[i].CityID + " >" + msg[i].CityName + "</option>"); } } } getArea(''); GetAddreesSpan(); } }) }; function getArea(AreaVal) { var DDL_City = $("#DDL_City"); var DDL_Area = $("#DDL_Area"); DDL_Area.empty(); DDL_Area.append("<option value=\"0\">县/乡</option>"); $.ajax( { type: "post", url: "/UserCart/Controller/CityAreas.ashx", data: { "type": "district", "cityID": DDL_City.val() }, dataType: "json", async: false, success: function (msg) { for (var i = 0; i < msg.length; i++) { if (AreaVal == msg[i].DistrictName) { if (msg[i].IsCOD == 1) { DDL_Area.append("<option value=" + msg[i].DistrictID + " selected=\"selected\">" + msg[i].DistrictName + "*</option>"); } else { DDL_Area.append("<option value=" + msg[i].DistrictID + " selected=\"selected\">" + msg[i].DistrictName + "</option>"); } } else { if (msg[i].IsCOD == 1) { DDL_Area.append("<option value=" + msg[i].DistrictID + " >" + msg[i].DistrictName + "*</option>"); } else { DDL_Area.append("<option value=" + msg[i].DistrictID + " >" + msg[i].DistrictName + "</option>"); } } } GetAddreesSpan(); } }) }; function GetAddreesSpan() { } 2、后端C#代码 <%@ WebHandler Language="C#" Class="CityAreas" %> using System; using System.Web; using System.Collections.Generic; public class CityAreas : IHttpHandler { public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; if (context.Request["type"] == "city") { context.Response.Write(select2(context.Request["provinceID"])); } else if (context.Request["type"] == "district") { context.Response.Write(select3(context.Request["cityID"])); } } public string select2(string id) { string str = string.Empty; if (!string.IsNullOrEmpty(id)) { List<ECS.Model.A_CityAreas> list = new ECS.BLL.A_CityAreas().GetList(null, "deep=2 and ParentID=" + id, null); if (list != null && list.Count > 0) { System.Text.StringBuilder sb = new System.Text.StringBuilder(); sb.Append("["); foreach (ECS.Model.A_CityAreas item in list) { sb.Append("{"); sb.Append("\"CityID\":\"" + item.id + "\",\"CityName\":\"" + item.AreaName + "\",\"IsCOD\":\"" + item.IsCOD + "\""); sb.Append("},"); } sb.Remove(sb.Length - 1, 1); sb.Append("]"); str = sb.ToString(); } } return str; } public string select3(string id) { string str = string.Empty; if (!string.IsNullOrEmpty(id)) { List<ECS.Model.A_CityAreas> list = new ECS.BLL.A_CityAreas().GetList(null, "deep=3 and ParentID=" + id, null); if (list != null && list.Count > 0) { System.Text.StringBuilder sb = new System.Text.StringBuilder(); sb.Append("["); foreach (ECS.Model.A_CityAreas item in list) { sb.Append("{"); sb.Append("\"DistrictID\":\"" + item.id + "\",\"DistrictName\":\"" + item.AreaName + "\",\"IsCOD\":\"" + item.IsCOD + "\""); sb.Append("},"); } sb.Remove(sb.Length - 1, 1); sb.Append("]"); str = sb.ToString(); } } return str; } public bool IsReusable { get { return false; } } }

优秀的个人博客,低调大师

个数据包真麻烦!

网络部新员工 我叫Robert,是Linux帝国一个普通的公民。 今天是我第一天上班的日子,我下了好大功夫才考上了帝国的公务员,根据我的成绩,我被分到了帝国网络部。 一进入帝国的办公园区,我就被眼前的景象惊呆了,一座座高楼大厦,富丽堂皇,鳞次栉比,我忍不住驻足多看了几眼。 这些大楼上面都有招牌,最高的那一座是帝国的进程&线程管理部门的办公大厦,旁边还有内存管理部门、文件管理等部门办公大厦。 网卡驱动部门 我只顾东张西望,不小心跟旁边小路跑出来的一位小哥撞了一个满怀,他手里抱的一堆数据散落的满地都是。 我一边道歉,一边帮他捡起数据。 “这位小哥行色匆匆,不知要去哪里啊”,我好奇的问到。 “哦,你好,我是网卡驱动部门的,这是从网卡那里刚刚拿到的数据包,我得赶紧交给协议栈处理”,说完整理了下数据,就匆忙离开了。 寻着他出来的地方看去,不远处就是他说的网卡驱动部门,难道我办公的地方就在这里?我沿着这条小路走了过去。 一进入网卡驱动部门,出现在眼前的就是一副热火朝天的景象,收包的,解包的,发包的,一群人忙的不亦乐乎。 “这么早就这么忙碌了啊”,我问门口的保安大叔。 “是啊,这平时这个点也没什么网络访问,不知道今天怎么回事,一大早的数据就传输个不停”,保安说到。 我指着里面一个员工问保安:“大叔,那人在干嘛呢?一直在转来转去的” “你说他啊,他在从网卡轮询读取数据包呢!” “轮询?网络数据包不是网卡发中断通知吗,干嘛要去轮询呢?”,我不解的问到。 “以前是这样的,不过后来CPU那边有个叫阿Q的家伙不干了,说网卡数据太频繁,老是打断他们正常的工作。不仅如此,中断响应的时候还得把中断给关了,避免出现错误,时间久了,键盘、鼠标等单位就得不到响应纷纷闹事了”,保安说完点了一支香烟。 我若有所思的点了点头,“那现在就改成轮询了?不过这样好浪费时间哦” 保安吐了一个烟圈,继续说到:“倒也不是全都是轮询,现在把处理过程分成了两段,最开始的第一部分还是靠中断来通知的,这个时候需要关一下中断,不过通知后不会真正处理数据包,而是开启了一个软中断,所以关不了太久时间。第二部分在软中断中去轮询处理的,这个时候就不用关中断了。把硬中断和轮询结合了一下,就不用每个数据包来都中断一次了,也不用关中断太长时间,还给这技术取了个名字叫NAPI” “保安大叔,你怎么什么都知道啊?” “我以前就在里面工作啊,现在年纪稍微大了些,比不上年轻人,就让我来当保安了,唉~”,大叔说完又猛抽了一口香烟,整理了下自己日益稀疏的头发。 “唉,对了,你是谁啊,怎么没见过你?” “我是帝国网络部新来的员工,今天来报道的。我把手中的录取通知书递给了保安” 保安大叔看了看说到:“你走错了,不是这里,你该去网络协议栈大厦”。 协议栈大厦 离开网卡驱动部门,我继续前行终于找到了网络协议栈大厦,这便是我今后工作的地方了。 走近一看,这座网络大厦并不如前面看到的高大,只有三层高,每一层的墙上都挂着一个巨大的招牌,上面写着这一层的名字,从上向下分别是: 应用层 传输层 网络层 大厦的门口还有一个收发室,门牌上写着netif_receive_skb,收发室坐着一位大爷。 正在这时,先前碰到的小哥又来了,将手里的数据放到了收发室就离开了,看来这里就是网络协议栈的入口了。 大爷拆开这个数据包看了看,随即按了下按钮,数据包就顺着管道传到了背后协议栈大厦一楼的一个办公室,我抬头一看,上面写着IPv4。再向旁边看去,还有好几间办公室,分别写了IPv6、ICMP、IGMP、ARP··· 我来到这个IPv4的门口,里面也是忙的不亦乐乎,有分片的、组包的、计算校验和的、有条不紊。 办公室正中央有一个圆柱形的管道,通向了二楼,一楼处理完毕就通过这管道把数据包送了上去。 墙上还有另一个管道,上面写着netfilter hook,不知道是通向了哪里。 “你找谁?”,我正看得入神,里面一个负责人发现了我,我赶紧表明来意。 他看过我手中的录取通知书后说到,“你是在传输层啊,出门右拐上二楼就是了。我们这一楼都是网络层协议的办公室。” 我又看了下手里的录用通知书,这才发现被分配在了传输层工作。 传输层工作 来到二楼,总算见到了我的主管。 “Robert,欢迎加入网络部,工作岗位在传输层的TCP小组,大家欢迎!” “谢谢主管!谢谢大家!” “这是Cerf,你刚来,就让他先带带你,有什么不懂的就向他请教吧。” 我点头感谢,和一旁这个叫Cerf的握了握手。 接下来,主管向我介绍了咱们传输层的几个小组的情况:TCP、UDP、SCTP、UDP-lite······我这才知道,原来传输层不是只有TCP和UDP。 Cerf带我来到了工位,不愧是国有单位,无比宽敞,桌上还有一堆奇怪的设备。 “这是一堆什么东西啊”,我问Cerf。 “这些都是定时器,后面你工作处理TCP连接会用到的” 我点了点头,环顾四周,工位旁边的墙壁上还贴满了什么东西,我凑近了一看,才发现满满的都是RFC几千条的规定。 “好好看,以后的工作可是要天天用到这些东西呢”,Cerf略开玩笑的说着。 “这些我基本都背的下来了,要不然我也考不到这里来”,我笑着说,略带一些得意。 Cerf也笑了笑,“别大意,之前也有人也说过这话,后来还不是走了” 我有些尴尬,不知道说些什么,这时办公室中央的管道里冒出了一个数据包。 “Robert,你刚来,这个新的连接数据包就交给你来处理下,熟悉下工作流程”,主管说到。 我刚刚放松的心情一下紧张了起来,毕竟以前都是纸上谈兵,还从没有真正处理过数据包呢。 我小心翼翼的接过这个数据包,定位到TCP的头部,瞧了一眼标志位,发现SYN位是1,看来是有新的连接到来了,接下来不就是三次握手吗,我再熟悉不过了。 我准备了一个响应包,将SYN标记和ACK标记都点亮后,接下来就犯了难了。这个确认号ACK我倒是知道是对方的序列号+1,不过我回复的序列号该是多少呢?一时之间,不知道如何是好。 你们知道吗?在线等,挺急的。 未完待续······ 彩蛋 CPU一号车间的阿Q又闹脾气了。 “我们花了大量时间把网卡数据搬运到内存,重复又没有技术含量,我受够了!” 预知后事如何,请关注后续精彩······ 往期TOP5文章 CPU明明8个核,网卡为啥拼命折腾一号核? 因为一个跨域请求,我差点丢了饭碗 完了!CPU一味求快出事儿了! 哈希表哪家强?几大编程语言吵起来了! 一个HTTP数据包的奇幻之旅 本文分享自微信公众号 - 编程技术宇宙(xuanyuancoding)。如有侵权,请联系 support@oschina.cn 删除。本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

优秀的个人博客,低调大师

使用代码查看Nutch爬的网站后生成的SequenceFile信息

必须针对data文件中的value类型来使用对应的类来查看(把这个data文件,放到了本地Windows的D盘根目录下). 代码: 1 package cn.summerchill.nutch; 2 import java.io.IOException; 3 4 import org.apache.hadoop.conf.Configuration; 5 import org.apache.hadoop.fs.FileSystem; 6 import org.apache.hadoop.fs.Path; 7 import org.apache.hadoop.io.SequenceFile; 8 import org.apache.hadoop.io.Text; 9 import org.apache.nutch.crawl.CrawlDatum; 10 import org.apache.nutch.crawl.Inlinks; 11 import org.apache.nutch.parse.ParseData; 12 import org.apache.nutch.parse.ParseText; 13 import org.apache.nutch.protocol.Content; 14 /** 15 * 读取nutch生成的sequencefile文件 16 * @author Administrator 17 * 18 */ 19 public class SeFileReader { 20 public static void main(String[] args) throws IOException { 21 Configuration conf=new Configuration(); 22 Path dataPath=new Path("D:\\data"); 23 FileSystem fs=dataPath.getFileSystem(conf); 24 SequenceFile.Reader reader=new SequenceFile.Reader(fs,dataPath,conf); 25 Text key=new Text(); 26 CrawlDatum value=new CrawlDatum(); 27 //Content value = new Content(); 28 //Inlinks value = new Inlinks(); 29 //ParseText value = new ParseText(); 30 //ParseData value = new ParseData(); 31 while(reader.next(key,value)){ 32 System.out.println("key->\n"+key); 33 System.err.println("value->\n"+value); 34 try { 35 Thread.sleep(1000); 36 } catch (InterruptedException e) { 37 e.printStackTrace(); 38 } 39 System.out.println("======================================="); 40 } 41 reader.close(); 42 } 43 } 运行结果: key-> http://bbs.superwu.cn/ value-> Version: 7 Status: 2 (db_fetched) Fetch time: Tue Nov 08 08:31:30 CST 2016 Modified time: Thu Jan 01 08:00:00 CST 1970 Retries since fetch: 0 Retry interval: 2592000 seconds (30 days) Score: 1.6153846 Signature: 22defcd7cb4e7b1dc8a16a0a2f339ecb Metadata: Content-Type=application/xhtml+xml _pst_=success(1), lastModified=0 _rs_=610 ======================================= value-> Version: 7 Status: 1 (db_unfetched) Fetch time: Sun Oct 09 08:31:35 CST 2016 Modified time: Thu Jan 01 08:00:00 CST 1970 Retries since fetch: 0 Retry interval: 2592000 seconds (30 days) Score: 0.23076925 Signature: null Metadata: key-> http://bbs.superwu.cn/archiver/ ======================================= key-> http://bbs.superwu.cn/forum.php value-> Version: 7 Status: 1 (db_unfetched) Fetch time: Sun Oct 09 08:31:35 CST 2016 Modified time: Thu Jan 01 08:00:00 CST 1970 Retries since fetch: 0 Retry interval: 2592000 seconds (30 days) Score: 0.15384616 Signature: null Metadata: ======================================= 本文转自SummerChill博客园博客,原文链接:http://www.cnblogs.com/DreamDrive/p/5944073.html,如需转载请自行联系原作者

资源下载

更多资源
优质分享App

优质分享App

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

用户登录
用户注册