- CSS学习02 动态列数表格开发,解决多组数据布局与边框重合问题
web_Hsir
csscss学习前端
概要在前端开发中,表格常用于展示结构化数据。当数据组的字段数量不统一时(如有的行包含3组数据,有的行包含2组或1组),传统固定列数的表格会出现结构错位、边框重合等问题。本文通过HTML/CSS规范方法,实现灵活适应不同数据组数的表格布局,确保视觉一致性和结构完整性。解决方案通过HTML表格的colspan(跨列)属性动态调整列数,结合CSS的border-collapse合并边框,实现灵活且规范的
- CSS 学习01 定位、阴影与伪元素
web_Hsir
css学习前端
组件效果预览1.容器布局:定位系统与盒模型.container{position:relative;/*为子元素绝对定位提供参考坐标系*/height:140px;width:240px;/*固定容器尺寸*/padding:20px;/*内边距创造内容空间*/background-color:#fff;/*白色背景*/border-radius:4px;/*整体圆角*/color:#333;/*文
- 多人同时导出 Excel 干崩服务器?怎样实现一个简单排队导出功能!
小小Java开发者
JavaWeb排队实现Excel文件导出多人导出Excel使用队列实现Excel导出
前言业务诉求:考虑到数据库数据日渐增多,导出会有全量数据的导出,多人同时导出可以会对服务性能造成影响,导出涉及到mysql查询的io操作,还涉及文件输入、输出流的io操作,所以对服务器的性能会影响的比较大;结合以上原因,对导出操作进行排队;刚开始拿到这个需求,第一时间想到就是需要维护一个FIFO先进先出的队列,给定队列一个固定size,在队列里面的人进行排队进行数据导出,导出完成后立马出队列,下一
- 多人同时导出 Excel 干崩服务器?我们来实现一个排队导出功能!
Java之路行者
系统JAVA后端SpringBootexcel服务器android数据库后端分布式java
一、前言业务诉求:考虑到数据库数据日渐增多,导出会有全量数据的导出,多人同时导出可以会对服务性能造成影响,导出涉及到mysql查询的io操作,还涉及文件输入、输出流的io操作,所以对服务器的性能会影响的比较大;结合以上原因,对导出操作进行排队;刚开始拿到这个需求,第一时间想到就是需要维护一个FIFO先进先出的队列,给定队列一个固定size,在队列里面的人进行排队进行数据导出,导出完成后立马出队列,
- python全栈-小米官网项目
兆。
python全栈前端
小米官网项目文章目录头部:超长图片,居中操作黑色顶部导航白色导航效果banner关于图标的导入广告卡手机展示部分家电部分视频展示底部设计网站标签页的logo图标全部代码可以互动的元素css初始化文件拿到一个项目之后,不要着急实现,要先分析完成整个项目需要那几步。轮播图需要js实现,使用静态图片代替css初始化文件,之前在练习的时候,总是要把body元素的内外边距归零,还有超链接去除底部下划线的操作
- Java log日志实现详解:从入门到精通
Java皇帝
javajava单元测试开发语言后端
目录一、日志的重要性二、常见的日志框架(一)SLF4J+Logback1.添加依赖2.配置`logback.xml`3.使用日志(二)Log4j21.添加依赖2.配置`log4j2.xml`3.使用日志(三)SpringBoot集成1.配置`application.properties`2.使用日志三、总结一、日志的重要性日志是应用程序运行时的记录,它可以帮助开发者了解程序的执行流程、调试问题、监
- Apache Superset本地部署结合内网穿透实现无公网IP远程查看数据
顾云澜
包罗万象golang开发语言后端
##前言本文主要介绍如何在Linux系统使用Docker部署ApacheSuperset并结合内网穿透工具实现远程访问本地服务的详细流程。Superset是一款现代化的企业级BI(商业智能)Web应用程序”,其通过创建和分享dashboard,为数据分析提供了轻量级的数据查询和可视化方案。Superset在数据处理和可视化方面具有强大的功能,能够满足企业级的数据分析需求,并为用户提供直观、灵活的
- Spark Driver生成过程详解
BenBen尔
spark大数据分布式
在ApacheSpark中,Driver的生成过程取决于部署模式,但其核心触发点是应用启动时初始化SparkContext的步骤。以下是不同场景下的详细解释:1.核心触发点:SparkContext初始化无论部署模式如何,Driver的生成都与SparkContext的初始化直接相关:用户代码中调用newSparkContext()时,Driver进程正式生成。此时,Driver会:解析配置参数(
- Spring IOC 详解:基于 XML 配置与注解的依赖注入
重生之成了二本看我逆天改命走向巅峰
springxmljava笔记开发语言后端
Spring框架是Java开发中最常用的框架之一,其核心思想之一是IOC(InversionofControl,控制反转)。IOC的核心思想是将对象的创建和依赖关系的管理交给Spring容器来处理,从而降低代码的耦合度。本文将深入探讨SpringIOC的实现方式,重点讲解基于XML配置和基于注解的两种形式。1.什么是IOC?IOC(控制反转)是Spring框架的核心思想之一。传统的Java开发中,
- spark的堆外内存,是在jvm内还是操作系统内存内?
BenBen尔
sparkjvm大数据hadoop
在ApacheSpark中,堆外内存(Off-HeapMemory)是直接分配在操作系统的物理内存中,而非JVM堆内内存。以下是详细的解释:1.堆外内存的本质操作系统管理Spark的堆外内存直接通过操作系统分配(例如使用ByteBuffer.allocateDirect()或底层sun.misc.UnsafeAPI),完全独立于JVM堆内存。JVM不控制这部分内存:堆外内存的分配和释放由Spark
- Java 读取 csv 文件
HarrisHaword
java开发语言
1、引入maven依赖org.apache.commonscommons-csv1.9.02、java代码/***csv内容解析**@paramfilePath文件路径*@paramcharsetName字符编码*@returnList>*/publicList>resolveData(StringfilePath,StringcharsetName){try{FileInputStreamfil
- (vue2.0)vue-awesome-swiper(v3.1.3)的初级使用
AlexKain
vue
npminstallnpminstallvue-awesome-swiper@2.6.7--save//或者npminstallvue-awesome-swiper--save引入importVueAwesomeSwiperfrom'vue-awesome-swiper'import'swiper/dist/css/swiper.css'Vue.use(VueAwesomeSwiper)代码部分<
- 使用poi+itextpdf把word转成pdf
lynn-66
wordpdf
使用ApachePOI和iTextPDF将Word转换为PDF需要分两步操作:先用POI读取Word内容,再用iText生成PDF。apachepoi官方文档:ApachePOI™-Javadocs以下是详细的代码实现示例:环境准备在pom.xml中添加依赖:org.apache.poipoi-ooxml${poi.version}org.apache.poipoi-scratchpad${poi
- JAVA 导出 word
HarrisHaword
javaword开发语言
1、模板方式导出1.1、引入maven依赖com.deepoovepoi-tl1.12.21.2、导出文档代码publicstaticvoidmain(String[]args){MapdataMap=newHashMapstudents=newArrayListdataList=newArrayListrows=newArrayListorg.apache.poipoi5.2.3org.apac
- html js 发送http请求,js发送get 、post请求的方法简介(偷来的)
Fitz Hoo
htmljs发送http请求
POST请求:javascript发送的参数格式不一样,请求头设置不一样,具体参照Http请求中请求头Content-Type讲解php发送的参数格式不一样,后台获取方式也不相同php请看php获取POST数据的三种方法html1、使用XMLHttpRequestjava主要分三步:json第一步:建立须要的对象,这里主要用到的是XMLHttpRequest,注意须要考虑早期的IE;app第二步:
- 前端 Website 的 sitemap.xml 文件和搜索引擎优化
前端
前端Website的sitemap.xml文件是一个XML格式的文件,其中包含了网站中所有页面的链接,这些页面可以是HTML页面、博客文章、产品页面、分类页面等等。Sitemap文件的作用是向搜索引擎提供关于网站的信息,帮助搜索引擎更好地索引网站内容,提高网站在搜索结果中的排名。Sitemap.xml文件的生成可以使用多种方法,最常用的方法是使用在线的sitemap生成器,也可以使用各种网站生成器
- 前端(vue)exceljs导出Excel(导出图片)
社会底层无业大学生
vuevue.js前端javascript
少说废话,直接入题先引入exceljsnpminstallexceljs--save随后在导出Excel的方法里面这样写asyncexportExcel(){//定义表头constcolumns=[{header:'标题名',key:'data数据字段名',width:14},{header:'姓名',key:'name',width:14},{header:'头像',key:'img',widt
- 改善 Maven 的依赖性
java
大家好,这里是架构资源栈!点击上方关注,添加“星标”,一起学习大厂前沿架构!建议使用mvndependency:analyze命令来摆脱已声明但未使用的依赖项:还有另一个用例,mvndependency:analyze它可以显示您在代码中使用但未在pom.xml中声明的依赖项。这有效是因为您对类路径具有传递依赖性。要么不使用该依赖项,要么声明它。—理查德·菲希特纳☕@richard.fichtne
- python网络爬虫
Small Cow
爬虫python爬虫开发语言
一、Python爬虫核心库HTTP请求库requests:简单易用的HTTP请求库,处理GET/POST请求。aiohttp:异步HTTP客户端,适合高并发场景。HTML/XML解析库BeautifulSoup:基于DOM树的解析库,支持多种解析器(如lxml)。lxml:高性能解析库,支持XPath语法。动态页面处理Selenium:模拟浏览器操作,处理JavaScript渲染的页面。Playw
- margin 塌陷问题
零度忧伤宝贝
csscss3前端
margin塌陷问题一、问题描述在CSS布局中,当两个垂直方向的元素嵌套时,子元素设置了margin-top或margin-bottom,而父元素没有设置padding或border时,可能会出现子元素的margin值“溢出”到父元素外面,导致父元素也跟着移动的现象,这就是margin塌陷问题。二、产生原因相邻元素:垂直方向上相邻的元素,它们的margin会合并,最终的margin大小为两者中较大
- css垂直水平居中的几种方法CSS
零度忧伤宝贝
css前端
手机版css垂直水平居中的几种方法CSS中实现垂直水平居中的方法有多种,每种方法都有其特定的适用场景和限制。以下是几种常见的实现方法及其详细描述、代码示例、适用场景和限制,以及优缺点对比。一、单行文本垂直水平居中方法名称:line-height+text-align具体实现步骤:设置父元素的height和line-height相同,使文本行垂直居中。设置父元素的text-align为center,
- 安装flask
m0nesy_8680
flaskpython后端
一、安装必要的库Python环境下(以Flask和pandas为例)首先需要安装Flask,它是一个轻量级的Web框架,可以用来快速搭建接口服务。在命令行中使用pipinstallflask进行安装。还需要安装pandas库,用于数据处理和操作Excel文件。使用pipinstallpandas来安装。二、创建接口逻辑导入必要的模块在Python文件中,导入Flask和相关模块。例如:收起pyth
- 大数据学习(100)-kafka详解
viperrrrrrr
大数据学习kafka
大数据学习系列专栏:哲学语录:用力所能及,改变世界。如果觉得博主的文章还不错的话,请点赞+收藏⭐️+留言支持一下博主哦ApacheKafka是一个分布式流处理平台,主要用于构建高吞吐量、低延迟、可扩展的实时数据管道和流式应用程序。它广泛应用于日志聚合、事件溯源、消息队列、实时分析等场景。Kafka核心概念1.Producer(生产者)向Kafka发布(写入)消息的客户端。可以指定消息发送到哪个To
- 【双周会】就在今晚,Apache SeaTunnel Community Call 会议通知
SeaTunnel
apache
各位ApacheSeaTunnel社区小伙伴们,大家好!我们将于2025年4月8日(星期二)晚上8点举行ApacheSeaTunnel双周会议。本次会议将涵盖最新的项目进展、技术讨论、社区动态等内容,欢迎大家积极参与!如果您在使用SeaTunnel上有相关的问题,也欢迎在会议上提出交流!会议时间2025年4月8日(星期二)晚8:00会议链接邀请您参加腾讯会议会议主题:SeaTunnelCommun
- SparkCore 编程
曼路
hadoop
1.sparkCore实现wordCount(Idea+scala)importorg.apache.spark.{SparkConf,SparkContext}objectwordCount{defmain(args:Array[String]):Unit={//设置本地运行2核valconf=newSparkConf().setAppName("scalaWordCount").setMast
- Chrome Extension 开发解析
奇舞周刊
chrome前端
一、ChromeExtension简介ChromeExtension,本质上是一个由HTML、CSS、JavaScript等前端技术开发的程序,就像我们平时开发的前端项目一样,它只是一个有各种资源组成的程序,被安装到浏览器后,能极大地扩展浏览器的功能。ChromeExtension可以理解为一个独立运行在Chrome浏览器下的APP,能够与打开的网页、Chrome控制面板、第三方插件等进行通信。比
- 安卓app下载文件(图片,pdf,excel等)到手机浏览器
至尊宝的小迷弟
androidpdfexcel
安卓app下载文件1.导出json为excel并下载下载import*asXLSXfrom'xlsx'hahaha(){//示例调用constjsonData=[{name:'John',age:30},{name:'Jane',age:25}]constblob=this.exportToExcel(jsonData)this.uploadAndDownload(blob,'data.xlsx'
- aspose 转pdf表格大小乱了_java 中使用aspose 将Excel 表格转成 pdf 文件 不出现折行...
kimi的萌miki
aspose转pdf表格大小乱了
excel表格转成功后的pdf文件话不多说直接上代码importjava.io.File;importjava.io.FileInputStream;importjava.io.FileOutputStream;importjava.io.IOException;importjava.io.InputStream;importcom.aspose.cells.License;importcom.a
- Apache DolphinScheduler社区答疑Star第一期评选结果公示
数据库
在广大社区成员的积极参与下,ApacheDolphinScheduler社区答疑Star第一期评选活动圆满落幕!本次活动旨在表彰那些长期为社区用户提供专业解答、积极推动技术交流的社群管理员。经过社区成员的公开票选,在25个社区群中共有4位表现突出的管理员脱颖而出(因票数并列第三名共同获评)。让我们热烈祝贺以下获奖者(按排名顺序):前三名获奖者第一名:Steven第二名:陆小龙并列第三名(四位):杨
- java 怎样解析jwt中的payload
zru_9602
javajava开发语言
在Java中解析JWT(JSONWebToken)中的Payload部分,通常需要使用一些库来简化操作。以下是几种常见的方法:1.使用jjwt库jjwt是一个流行的开源库,专门用于处理JWT。你可以通过以下步骤解析JWT的Payload。步骤1:添加依赖在pom.xml文件中添加jjwt依赖:io.jsonwebtokenjjwt-api0.9.1io.jsonwebtokenjjwt-impl0
- ASM系列四 利用Method 组件动态注入方法逻辑
lijingyao8206
字节码技术jvmAOP动态代理ASM
这篇继续结合例子来深入了解下Method组件动态变更方法字节码的实现。通过前面一篇,知道ClassVisitor 的visitMethod()方法可以返回一个MethodVisitor的实例。那么我们也基本可以知道,同ClassVisitor改变类成员一样,MethodVIsistor如果需要改变方法成员,注入逻辑,也可以
- java编程思想 --内部类
百合不是茶
java内部类匿名内部类
内部类;了解外部类 并能与之通信 内部类写出来的代码更加整洁与优雅
1,内部类的创建 内部类是创建在类中的
package com.wj.InsideClass;
/*
* 内部类的创建
*/
public class CreateInsideClass {
public CreateInsideClass(
- web.xml报错
crabdave
web.xml
web.xml报错
The content of element type "web-app" must match "(icon?,display-
name?,description?,distributable?,context-param*,filter*,filter-mapping*,listener*,servlet*,s
- 泛型类的自定义
麦田的设计者
javaandroid泛型
为什么要定义泛型类,当类中要操作的引用数据类型不确定的时候。
采用泛型类,完成扩展。
例如有一个学生类
Student{
Student(){
System.out.println("I'm a student.....");
}
}
有一个老师类
- CSS清除浮动的4中方法
IT独行者
JavaScriptUIcss
清除浮动这个问题,做前端的应该再熟悉不过了,咱是个新人,所以还是记个笔记,做个积累,努力学习向大神靠近。CSS清除浮动的方法网上一搜,大概有N多种,用过几种,说下个人感受。
1、结尾处加空div标签 clear:both 1 2 3 4
.div
1
{
background
:
#000080
;
border
:
1px
s
- Cygwin使用windows的jdk 配置方法
_wy_
jdkwindowscygwin
1.[vim /etc/profile]
JAVA_HOME="/cgydrive/d/Java/jdk1.6.0_43" (windows下jdk路径为D:\Java\jdk1.6.0_43)
PATH="$JAVA_HOME/bin:${PATH}"
CLAS
- linux下安装maven
无量
mavenlinux安装
Linux下安装maven(转) 1.首先到Maven官网
下载安装文件,目前最新版本为3.0.3,下载文件为
apache-maven-3.0.3-bin.tar.gz,下载可以使用wget命令;
2.进入下载文件夹,找到下载的文件,运行如下命令解压
tar -xvf apache-maven-2.2.1-bin.tar.gz
解压后的文件夹
- tomcat的https 配置,syslog-ng配置
aichenglong
tomcathttp跳转到httpssyslong-ng配置syslog配置
1) tomcat配置https,以及http自动跳转到https的配置
1)TOMCAT_HOME目录下生成密钥(keytool是jdk中的命令)
keytool -genkey -alias tomcat -keyalg RSA -keypass changeit -storepass changeit
- 关于领号活动总结
alafqq
活动
关于某彩票活动的总结
具体需求,每个用户进活动页面,领取一个号码,1000中的一个;
活动要求
1,随机性,一定要有随机性;
2,最少中奖概率,如果注数为3200注,则最多中4注
3,效率问题,(不能每个人来都产生一个随机数,这样效率不高);
4,支持断电(仍然从下一个开始),重启服务;(存数据库有点大材小用,因此不能存放在数据库)
解决方案
1,事先产生随机数1000个,并打
- java数据结构 冒泡排序的遍历与排序
百合不是茶
java
java的冒泡排序是一种简单的排序规则
冒泡排序的原理:
比较两个相邻的数,首先将最大的排在第一个,第二次比较第二个 ,此后一样;
针对所有的元素重复以上的步骤,除了最后一个
例题;将int array[]
- JS检查输入框输入的是否是数字的一种校验方法
bijian1013
js
如下是JS检查输入框输入的是否是数字的一种校验方法:
<form method=post target="_blank">
数字:<input type="text" name=num onkeypress="checkNum(this.form)"><br>
</form>
- Test注解的两个属性:expected和timeout
bijian1013
javaJUnitexpectedtimeout
JUnit4:Test文档中的解释:
The Test annotation supports two optional parameters.
The first, expected, declares that a test method should throw an exception.
If it doesn't throw an exception or if it
- [Gson二]继承关系的POJO的反序列化
bit1129
POJO
父类
package inheritance.test2;
import java.util.Map;
public class Model {
private String field1;
private String field2;
private Map<String, String> infoMap
- 【Spark八十四】Spark零碎知识点记录
bit1129
spark
1. ShuffleMapTask的shuffle数据在什么地方记录到MapOutputTracker中的
ShuffleMapTask的runTask方法负责写数据到shuffle map文件中。当任务执行完成成功,DAGScheduler会收到通知,在DAGScheduler的handleTaskCompletion方法中完成记录到MapOutputTracker中
- WAS各种脚本作用大全
ronin47
WAS 脚本
http://www.ibm.com/developerworks/cn/websphere/library/samples/SampleScripts.html
无意中,在WAS官网上发现的各种脚本作用,感觉很有作用,先与各位分享一下
获取下载
这些示例 jacl 和 Jython 脚本可用于在 WebSphere Application Server 的不同版本中自
- java-12.求 1+2+3+..n不能使用乘除法、 for 、 while 、 if 、 else 、 switch 、 case 等关键字以及条件判断语句
bylijinnan
switch
借鉴网上的思路,用java实现:
public class NoIfWhile {
/**
* @param args
*
* find x=1+2+3+....n
*/
public static void main(String[] args) {
int n=10;
int re=find(n);
System.o
- Netty源码学习-ObjectEncoder和ObjectDecoder
bylijinnan
javanetty
Netty中传递对象的思路很直观:
Netty中数据的传递是基于ChannelBuffer(也就是byte[]);
那把对象序列化为字节流,就可以在Netty中传递对象了
相应的从ChannelBuffer恢复对象,就是反序列化的过程
Netty已经封装好ObjectEncoder和ObjectDecoder
先看ObjectEncoder
ObjectEncoder是往外发送
- spring 定时任务中cronExpression表达式含义
chicony
cronExpression
一个cron表达式有6个必选的元素和一个可选的元素,各个元素之间是以空格分隔的,从左至右,这些元素的含义如下表所示:
代表含义 是否必须 允许的取值范围 &nb
- Nutz配置Jndi
ctrain
JNDI
1、使用JNDI获取指定资源:
var ioc = {
dao : {
type :"org.nutz.dao.impl.NutDao",
args : [ {jndi :"jdbc/dataSource"} ]
}
}
以上方法,仅需要在容器中配置好数据源,注入到NutDao即可.
- 解决 /bin/sh^M: bad interpreter: No such file or directory
daizj
shell
在Linux中执行.sh脚本,异常/bin/sh^M: bad interpreter: No such file or directory。
分析:这是不同系统编码格式引起的:在windows系统中编辑的.sh文件可能有不可见字符,所以在Linux系统下执行会报以上异常信息。
解决:
1)在windows下转换:
利用一些编辑器如UltraEdit或EditPlus等工具
- [转]for 循环为何可恨?
dcj3sjt126com
程序员读书
Java的闭包(Closure)特征最近成为了一个热门话题。 一些精英正在起草一份议案,要在Java将来的版本中加入闭包特征。 然而,提议中的闭包语法以及语言上的这种扩充受到了众多Java程序员的猛烈抨击。
不久前,出版过数十本编程书籍的大作家Elliotte Rusty Harold发表了对Java中闭包的价值的质疑。 尤其是他问道“for 循环为何可恨?”[http://ju
- Android实用小技巧
dcj3sjt126com
android
1、去掉所有Activity界面的标题栏
修改AndroidManifest.xml 在application 标签中添加android:theme="@android:style/Theme.NoTitleBar"
2、去掉所有Activity界面的TitleBar 和StatusBar
修改AndroidManifes
- Oracle 复习笔记之序列
eksliang
Oracle 序列sequenceOracle sequence
转载请出自出处:http://eksliang.iteye.com/blog/2098859
1.序列的作用
序列是用于生成唯一、连续序号的对象
一般用序列来充当数据库表的主键值
2.创建序列语法如下:
create sequence s_emp
start with 1 --开始值
increment by 1 --増长值
maxval
- 有“品”的程序员
gongmeitao
工作
完美程序员的10种品质
完美程序员的每种品质都有一个范围,这个范围取决于具体的问题和背景。没有能解决所有问题的
完美程序员(至少在我们这个星球上),并且对于特定问题,完美程序员应该具有以下品质:
1. 才智非凡- 能够理解问题、能够用清晰可读的代码翻译并表达想法、善于分析并且逻辑思维能力强
(范围:用简单方式解决复杂问题)
- 使用KeleyiSQLHelper类进行分页查询
hvt
sql.netC#asp.nethovertree
本文适用于sql server单主键表或者视图进行分页查询,支持多字段排序。KeleyiSQLHelper类的最新代码请到http://hovertree.codeplex.com/SourceControl/latest下载整个解决方案源代码查看。或者直接在线查看类的代码:http://hovertree.codeplex.com/SourceControl/latest#HoverTree.D
- SVG 教程 (三)圆形,椭圆,直线
天梯梦
svg
SVG <circle> SVG 圆形 - <circle>
<circle> 标签可用来创建一个圆:
下面是SVG代码:
<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
<circle cx="100" c
- 链表栈
luyulong
java数据结构
public class Node {
private Object object;
private Node next;
public Node() {
this.next = null;
this.object = null;
}
public Object getObject() {
return object;
}
public
- 基础数据结构和算法十:2-3 search tree
sunwinner
Algorithm2-3 search tree
Binary search tree works well for a wide variety of applications, but they have poor worst-case performance. Now we introduce a type of binary search tree where costs are guaranteed to be loga
- spring配置定时任务
stunizhengjia
springtimer
最近因工作的需要,用到了spring的定时任务的功能,觉得spring还是很智能化的,只需要配置一下配置文件就可以了,在此记录一下,以便以后用到:
//------------------------定时任务调用的方法------------------------------
/**
* 存储过程定时器
*/
publi
- ITeye 8月技术图书有奖试读获奖名单公布
ITeye管理员
活动
ITeye携手博文视点举办的8月技术图书有奖试读活动已圆满结束,非常感谢广大用户对本次活动的关注与参与。
8月试读活动回顾:
http://webmaster.iteye.com/blog/2102830
本次技术图书试读活动的优秀奖获奖名单及相应作品如下(优秀文章有很多,但名额有限,没获奖并不代表不优秀):
《跨终端Web》
gleams:http