今天来教大家如何使用 ale.js 制作一个小而美的表格编辑器,首先先上 gif:
是不是还是有一点非常 cool 的感觉的?那么我们现在开始吧!
这是我们这篇文章结束后完成的效果(如果想继续完成请访问第三篇文章):
ok,那继续开始吧(本篇文章是表格编辑器系列的第二篇文章,如果您还没有看过第一篇,请访问 第一篇文章(开源中国)):
首先我们写一个名叫 staticData 的 object,里面添加2个属性,分别是 sortBy 和 sortType:(关于 staticData 这里不做阐述,如果有需要请访问 cn.alejs.org)
staticData: {
sortBy: -1, //排序列索引,默认没有,所以为-1
sortType: 'down' //排序类型,默认为降序
}
之后我们在 th 标签里面增加一个 onclick 属性,指向 methods 里面的 handleTheadOnclick 函数,并传递一个 event 作为参数:
(之前的代码)
this.data.bookHeader.forEach(function(val, i, arr) {
returnVal += "" + val + " ";
})
(改进后的代码)
this.data.bookHeader.forEach(function(val, i, arr) {
returnVal += "" + val + " ";
})
为了让他显示排序时的小箭头,我们需要再改进这行代码为这样:
this.data.bookHeader.forEach(function(val, i, arr) {
returnVal += "" + val + (sortBy === i ? getSortSign() : '') + " ";
})
由于 sortBy 变量和 getSortSign 函数变量还未定义,所以我们要在之前的代码里引用一下:
(原来的代码)
var returnVal = "";
(改进后的代码)
var returnVal = "",
getSortSign = this.methods.getSortSign,
sortBy = this.staticData.sortBy;
其中,sortBy 变量指向的是静态 data 里的 sortBy 变量,这个我们已经定义了,所以先不管他。而另一个 getSortSign 函数还没有定义,所以我们在 methods 里面定义一下他:
getSortSign() {
if (this.staticData.sortType === "up") {
return '\u2191';
} else {
return '\u2193';
}
}
其功能主要就是判断是正序还是倒叙,并分别输出正反小箭头。
之后我们就需要完成 handleTheadOnclick 函数了。它分别引用了 changeSortType 和 sortList 函数:
handleTheadOnclick(e) {
this.methods.changeSortType(e);
this.methods.sortList(e);
}
其中 changeSortType 函数是用来改变排序类型的,而 sortList 函数使用来排序的。
那么我们先完成 changeSortType 函数吧:
changeSortType(e) {
this.staticData.sortBy = e.target.cellIndex;
if (this.staticData.sortType === "up") {
this.staticData.sortType = "down";
} else {
this.staticData.sortType = "up";
}
}
ok,这个函数的功能和实现都非常简单,其中 cellIndex 是用来获取这是属于表格中那一列的。
那么 sortList 函数的实现则稍微有些复杂:
sortList(e) {
//获取列索引值
var index = e.target.cellIndex;
//判断排序类型
if (this.staticData.sortType === "up") {
//使用数组的 sort 函数进行排序,分别按 charCode 进行排序
this.data.bookData.sort(function(a, b) {
return a[index].charCodeAt(0) > b[index].charCodeAt(0) ? 1 : -1;
})
} else {
this.data.bookData.sort(function(a, b) {
return a[index].charCodeAt(0) < b[index].charCodeAt(0) ? 1 : -1;
})
}
this.data.bookData = this.data.bookData;
}
这是我们目前的全部 js 代码:
Ale("excel", {
template() {
return this.methods.handleTemplateRender();
},
methods: {
handleTemplateRender() {
//定义DOM基本结构
var returnVal = "",
getSortSign = this.methods.getSortSign,
sortBy = this.staticData.sortBy;
//循环遍历bookHeader数据并输出
this.data.bookHeader.forEach(function(val, i, arr) {
returnVal += "" + val + (sortBy === i ? getSortSign() : '') + " ";
})
returnVal += " ";
//循环遍历bookData数据并输出
this.data.bookData.forEach(function(thisBook, i, arr) {
//输出一行
returnVal += "";
thisBook.forEach(function(val, i, arr) {
//输出一列
returnVal += "" + val + " ";
})
returnVal += " ";
})
returnVal += "
";
//返回DOM结构
return returnVal;
},
handleTheadOnclick(e) {
this.methods.changeSortType(e);
this.methods.sortList(e);
},
changeSortType(e) {
this.staticData.sortBy = e.target.cellIndex;
if (this.staticData.sortType === "up") {
this.staticData.sortType = "down";
} else {
this.staticData.sortType = "up";
}
},
sortList(e) {
var index = e.target.cellIndex;
if (this.staticData.sortType === "up") {
this.data.bookData.sort(function(a, b) {
return a[index].charCodeAt(0) > b[index].charCodeAt(0) ? 1 : -1;
})
} else {
this.data.bookData.sort(function(a, b) {
return a[index].charCodeAt(0) < b[index].charCodeAt(0) ? 1 : -1;
})
}
this.data.bookData = this.data.bookData;
},
getSortSign() {
if (this.staticData.sortType === "up") {
return '\u2191';
} else {
return '\u2193';
}
}
},
data: {
bookHeader: [
"Book", "Author", "Language", "Published", "Sales"
],
bookData: [
["The Lord of the Rings", " J. R. R. Tolkien", "English", "1954-1955", "150 million"],
["The Little Prince", "Antoine de Saint-Exupéry", "French", "1943", "140 million"],
["Dream of the Red Chamber", "Cao Xueqin", "Chinese", "1791", "100 million"]
]
},
staticData: {
sortBy: -1,
sortType: 'down'
}
})
Ale.render("excel", {
el: "#app"
})
然后效果就如下图所示啦:
如果想了解更多,欢迎关注我在明天推出的第三篇教程,同时也关注一下 alejs 哦,感谢各位!
(非常重要:如果有能力的话不妨去 Github 或 码云 上 star 一下我们吧!不过如果您特别喜欢 alejs 的话也可以 watch 或 fork 一下哦!十分感谢!)
你可能感兴趣的:(使用 ale.js 制作一个小而美的表格编辑器(2))
自定义数据集使用scikit-learn中的包实现线性回归方法对其进行拟合
辞落山
scikit-learn 线性回归 python
1.引言简要介绍线性回归模型及其在机器学习中的应用。2.创建自定义数据集通过生成一个简单的自定义数据集来模拟问题。可以使用numpy生成数据。importnumpyasnpimportmatplotlib.pyplotasplt#生成自定义数据np.random.seed(42)X=2*np.random.rand(100,1)y=4+3*X+np.random.randn(100,1)3.使用s
TensorFlow 简介
九月十九
tensorflow 人工智能 python
TensorFlow是一个开源的机器学习框架,由Google开发。它提供了一个强大的工具集,用于构建和训练各种机器学习模型。TensorFlow的基本概念和使用场景包括:1.张量(Tensor):TensorFlow中的核心数据结构是张量,它是一个多维数组,可以表示标量、向量、矩阵等。2.计算图(Graph):TensorFlow使用计算图来表示机器学习模型的计算过程。计算图由一系列的操作节点和数
python——格式化输出
pumpkin84514
python相关 python
Python提供了多种格式化输出的方法,常见的有以下几种:百分号(%)格式化str.format()方法f-string(格式化字符串字面量)模板字符串每种方法都有其独特的用法和适用场景。下面我们逐一详细讲解并举例说明。1.百分号(%)格式化这种方法类似于C语言中的printf格式,使用百分号(%)作为占位符。用法%s:字符串%d:整数%f:浮点数%%:百分号示例name="Alice"age=3
Celery(三)Celery其他
呀儿呦丶
# celery Python python
文章目录1.config1.1通过app.conf进行配置1.2通过app.conf.update进行配置1.3通过配置文件进行配置1.4通过配置类的方式进行配置2.任务相关2.1任务基类(base)2.2任务名称(name)2.3任务请求(request)2.4任务重试(retry)2.4.1指定最大重试次数2.4.2设置重试间隔时间2.4.3最大重试次数时报告的自定义异常2.4.4重试指定异常
SQLAlchemy
呀儿呦丶
Python # SQLAlchemy 数据库 python mysql
1.介绍SQLAlchemy以其对象关系映射器(ORM)而闻名,它是一个提供数据映射器模式的可选组件,其中类可以以开放式、多种方式映射到数据库——允许对象模型和数据库模式在一个从一开始就干净地解耦。简单来讲只需要用python的语法来操作对象,就能被自动映射为sql语句。sqlalchemy第三方orm框架(对象关系映射),可以单独使用。底层依附于pymysql2.安装pipinstallsqla
《Python 基础知识点解析--01》
青柠小卖部
python 开发语言
在编程的世界里,Python以其简洁易懂的语法和强大的功能受到了广大开发者的喜爱。本文将为您详细介绍Python基础中的一些重要知识点。一、注释的作用与分类注释在代码中起着至关重要的作用,它可以帮助开发者更好地理解代码的功能和逻辑。单行注释:以#开头,其后的内容为注释。例如:#这是一个单行注释多行注释:使用三个单引号'''或三个双引号"""包裹注释内容。例如:'''这是一个多行注释'''注释可以用
爬虫实践--爬取学科排名数据
青柠小卖部
爬虫
简介在当今这个信息爆炸的时代,数据的获取和分析变得越来越重要。作为一名数据分析师,我经常需要从各种网站抓取数据来进行研究。最近,我接手了一个项目,需要抓取上海软科排名的数据。上海软科排名是一个权威的大学排名,包含了全球大学的学术排名信息。本文将详细介绍我如何使用Python编写爬虫程序来自动化抓取这些数据。环境准备在开始编码之前,我们需要准备以下环境和库:Python3.xrequests:用于发
lambda函数使用方法
mm_exploration
python 开发语言
目录lambda函数定义lambda函数基本语法lambda函数扩展用法lambda函数定义匿名函数lambda:是指一类无需定义标识符(函数名)的函数或子程序。所谓匿名函数,通俗地说就是没有名字的函数,lambda函数没有名字,是一种简单的、在同一行中定义函数的方法。lambda函数一般功能简单:单行expression决定了lambda函数不可能完成复杂的逻辑,只能完成非常简单的功能。由于其实
JMeter性能测试入门-不同类型线程组的使用
温金垚
jmeret 软件测试基础 多线程
在做性能测试之前,我们来了解一下JMeter多个不同线程组的应用。首先,JMeter提供了三个基本的线程组,分别为:ThreadGroupsetUpThreadGrouptearDownThreadGroup其他线程组可以通过集成插件的方式使用,包括:bzm-ArrivalsThreadGroupbzm-ConcurrencyThreadGroupbzm-Free-FormArrivalsThre
MySQL架构设计浅析
JackieGGu
MySQL mysql innodb 架构设计
文章目录1.MySQL相关文件(目录)路径1.1配置文件1.2数据目录1.3日志文件(建议关闭)1.4数据文件2.MySQL的逻辑架构2.1server层2.2引擎层3.InnoDB引擎数据更新流程4.InnoDB引擎脏页落盘流程4.1为什么需要脏页落盘4.2落盘的时机4.3落盘的流程1.MySQL相关文件(目录)路径1.1配置文件/etc/my.cnf/etc/mysql/my.cnf/usr/
能说说MyBatis的工作原理吗?
java1234_小锋
java java 开发语言
大家好,我是锋哥。今天分享关于【能说说MyBatis的工作原理吗?】面试题。希望对大家有帮助;能说说MyBatis的工作原理吗?1000道互联网大厂Java工程师精选面试题-Java资源分享网MyBatis是一个流行的持久化框架,它简化了数据库操作,通过映射SQL语句与Java对象之间的关系,使得开发者可以专注于业务逻辑,而不需要处理大量的数据库底层操作。它的工作原理主要围绕以下几个核心概念:1.
能说说MyBatis的工作原理吗?
java1234_小锋
java java 开发语言
大家好,我是锋哥。今天分享关于【Redis为什么这么快?】面试题。希望对大家有帮助;能说说MyBatis的工作原理吗?MyBatis是一款流行的持久层框架,它通过简化数据库操作,帮助开发者更高效地与数据库进行交互。MyBatis允许开发者使用XML或注解来配置SQL语句并映射数据库中的记录到Java对象。它的工作原理可以从以下几个方面来解释:1.MyBatis核心组件MyBatis的工作原理基于几
自定义数据集 使用pytorch框架实现逻辑回归并保存模型,然后保存模型后再加载模型进行预测
知识鱼丸
machine learning 逻辑回归 算法 机器学习
1.数据准备首先,我们需要一些示例数据。在这个例子中,我们将生成一些简单的二维数据点,并为其分配标签。2.定义逻辑回归模型接下来,我们定义一个简单的逻辑回归模型。3.训练模型定义损失函数和优化器,然后进行模型训练。4.保存模型训练完成后,我们可以保存模型的状态字典。5.加载模型并进行预测加载保存的模型,并进行预测。importtorchimporttorch.nnasnnimporttorch.o
构建响应式管理后台系统(Python + Django + Bootstrap)
后端架构魔术骑士
python django bootstrap Python
在本文中,我们将使用Python编程语言结合Django和Bootstrap框架来构建一个响应式管理后台系统。我们将使用Django作为后端框架,处理数据和业务逻辑,并使用Bootstrap作为前端框架,实现用户界面的设计和布局。环境设置和项目创建首先,确保你已经安装了Python和Django。在命令行中运行以下命令来创建一个新的Django项目:$django-adminstartprojec
约瑟夫问题(信息学奥赛一本通-2037)
Doopny@
信息学奥赛一本通 算法
【题目描述】N个人围成一圈,从第一个人开始报数,数到M的人出圈;再由下一个人开始报数,数到M的人出圈;…输出依次出圈的人的编号。【输入】输入N和M。【输出】输出一行,依次出圈的人的编号。【输入样例】85【输出样例】52871463【提示】【数据范围】对于所有数据,2≤N,M≤1000。【题解代码】#includeusingnamespacestd;constintN=5e3+10;intnums[
2024年Python最新python之protobuf使用案例_python protobuf 使用案例(1)
2401_84557849
程序员 python 网络 java
enumPhoneType{MOBILE=0;HOME=1;WORK=2;}messagePhoneNumber{requiredstringnumber=1;optionalPhoneTypetype=2[default=HOME];}repeatedPhoneNumberphones=4;//repeate类似数组,里面可以存放多个PhoneNumber可自定义类型}messageAddres
[ Spring ] Spring Cloud Gateway 2025 Comprehensive Overview
ByteFlys
java spring-cloud gateway kotlin java
文章目录SpringGatewayArchitectureProjectLevelDependencyServiceCenterServiceProviderGatewayServiceLaunchAllServiceSpringGatewayArchitectureServiceCenter:registerandfindserviceproviderServiceProvider:progra
使用numpy自定义数据集 使用tensorflow框架实现逻辑回归并保存模型,然后保存模型后再加载模型进行预
辞落山
numpy tensorflow 逻辑回归
1.引言逻辑回归(LogisticRegression)是一种常见的分类算法,广泛应用于二分类问题。在本篇博客中,我们将使用numpy生成一个简单的自定义数据集,并使用TensorFlow框架构建和训练逻辑回归模型。训练完成后,我们会保存模型,并演示如何加载保存的模型进行预测。2.创建自定义数据集首先,我们使用numpy生成一个简单的二分类数据集,包含两个特征和对应的标签。标签0表示负类,标签1表
protobuf学习和使用(Python)
呀儿呦丶
Python 学习 python 开发语言
Protobuf学习文章目录Protobuf学习简介安装example数据类型映射关系proto2和proto3的区别案例example1_定义基本的消息类型example2_使用repeated字段example3_定义枚举类型example4_使用oneofexample5_字段编号与保留简介ProtocolBuffers(Protobuf)是一种由Google开发的高效、跨平台的序列化协议。
指针(C语言)从0到1掌握指针,为后续学习c++打下基础
Hou'
c语言 开发语言
目录一,指针二,内存地址和指针1,什么是内存地址2,指针在不同系统下所占内存三,指针的声明和初始化以及类型1,指针的声明2,指针的初始化1,初始化方式优点及适用场景4,指针的声明初始化类型四,野指针(永远都要避免)1,野指针的定义2,野指针产生的原因1,指针没有初始化2,释放内存后未置空3.局部变量超出作用域3,野指针的危害4,如何避免野指针五,取地址符和解引用1,取地址符&2,解引用*六,指针的
嵌入式经典面试题之操作系统(一)
指尖动听知识库
java linux 服务器
文章目录1请你说说常用的Linux命令有哪些?2在linux中如何创建一个新的目录?3Linux中查看进程运行状态的指令、tar解压文件的参数。4在linux中,文件权限如何修改?5怎样以root权限运行某个程序?6在linux里如何查看一个进程?7在Linux里如何看带关键字日志文件?8在Linux中修改主机名的命令是什么?9简述GDB常见的调试命令?什么是条件断点?多进程下如何调试?1请你说说
Python:lambda 函数详解 以及使用
技术探索者
# python python 开发语言
一、lambda语法lambda函数的语法只包含一个语句,表现形式如下:lambda[arg1[,arg2,.....argn]]:expression其中,lambda是Python预留的关键字,[arg…]和expression由用户自定义。具体如下:[arg…]是参数列表,它的结构与Python中函数(function)的参数列表是一样的。[arg…]可以有非常多的形式。例如:a,ba=1,
python变量赋值
zombee0
编程
赋值python变量赋值传递的都是引用,变量赋新对象相当于将当前变量名的标签从原变量上撕下来,贴到新的对象上。a=[1,2]b=a此时a=[1,2],b=[1,2]a[1]=3此时a=[1,3],b=[1,3]a=[2,3]此时a=[2,3],b=[1,2]Python中一切皆为对象,数字是对象,列表是对象,函数也是对象,任何东西都是对象。而变量是对象的一个引用(又称为名字或者标签),对象的操作都
谈谈信息安全治理模型
SOA开发者
安全 web安全 网络
当我们学习ISO/SAE21434标准的时候,会看到网络安全治理(Cybersecuritygovernment)和网络安全管理(Cybersecuritymanagement)两个概念。然而该标准中并没有给出安全治理和安全管理的十分清晰的定义和描述。即使在安全社区内,似乎也是讲安全管理的多,讲安全治理的少。那到底两个概念是什么?两者的区别和联系又是什么呢?笔者通过调研发现安全治理、安全管理和安全
matlab——计算VPD(vapor pressure defict)
小琳子要开心呀
MATLAB VPD 计算饱和水汽压 Goff-Gratch公式 matlab
需求:计算VPD(vaporpressuredefict)。介绍:饱和水汽压差(简称VPD)是指在一定温度下,饱和水汽压与空气中的实际水汽压之间的差值(百度百科)。因此,温室中VPD的理想范围是0.45kPa至1.25kPa,理想情况下约为0.85kPa。通常,大多数植物在VPD在0.8到0.95kPa之间时生长良好(维基百科)。计算方法:一、先计算饱和水汽压二、饱和水汽压减去实际水汽压。世界气象
分类算法:梯度提升树(GBT)算法原理
kkchenjj
数据挖掘 机器学习 算法 分类 数据挖掘
分类算法:梯度提升树(GBT)算法原理1.简介1.1梯度提升树的起源与发展梯度提升树(GradientBoostingTree,GBT)是一种强大的机器学习算法,它基于提升方法的原理,通过迭代地构建一系列弱分类器并组合它们来形成一个强分类器。GBT的起源可以追溯到Freund和Schapire在1996年提出的AdaBoost算法,但真正将梯度提升应用于树模型的是JeromeH.Friedman在
Z820安装Win7系统出现0X0000007B蓝屏报错无限重启的解决方法与相关问题
homelab
HP Z系工作站 商用电脑 windows 操作系统 驱动程序
安装win7系统,一般有PE工具安装和ISO启动(光盘或U盘镜像)两种方法,但不管用哪种方法,都可能因没有加载硬盘驱动而失败,蓝屏在第二次重启后一闪而过,之后自动重启,陷入无限重启的死循环。这段信息为:AproblemhasbeendetectedandWindowshasbeenshutdowntopreventdamagetoyourcomputer.Ifthisisthefirsttimey
程序员必备:五款免费代码补全神器深度测评(Codeium、DeepSeek、Baidu Comate 等)
程序员的开发手册
软件开发 Python 教程 python 代码补全 Codeium DeepSeek 开发效率 免费
引言程序员的工作效率,往往与手头工具的好坏息息相关。对于每一个需要高效编码的开发者来说,代码补全工具已经成为日常工作中不可或缺的一部分。它不仅能减少重复劳动,还能帮助你快速完成复杂的代码逻辑。然而,当市场上出现了一大堆免费代码补全工具时,你是否也开始纠结该如何选择?最近,有不少小伙伴在吐槽曾经被誉为“代码联动神器”的Codeium变得不太稳定,导致很多开发者不得不转向其他工具,比如DeepSeek
SAP MM移动平均价和标准价逻辑
乐期无许
SAP MM SAP FICO 移动平均价 标准价
从收货到领用,S一直都是以标准价格计算,V是实时更新S时将差异结转到在产品,产品中,最后结转到生产成本,最终到利润。具有计划性,可以控制考核V是实时更新,出现差异直接对应材料中调整。价格可以直接反映市场价格事实说明标准价格数量单价本期收货结余标准价周期价格差异上期结存10022002本期收货1002.424020022.440发票校验2.2220200220收货产生的会计凭证发票校验产生的会计凭证
《无人机DIY》——3.5 Brooklyn Aerodrome Flack
weixin_33989780
本节书摘来异步社区《无人机DIY》一书中的第3章,第3.5节,作者:【美】JohnBaichtal(约翰贝克托),更多章节内容可以访问云栖社区“异步社区”公众号查看3.5BrooklynAerodromeFlackBrooklynAerodrome(brooklynaero.com)是纽约的一个用家用隔热材料(看起来像彩色的泡沫塑料,在图3.13中可以看到一个例子)制作无线遥控飞机的组织。Flac
iOS http封装
374016526
ios 服务器交互 http 网络请求
程序开发避免不了与服务器的交互,这里打包了一个自己写的http交互库。希望可以帮到大家。
内置一个basehttp,当我们创建自己的service可以继承实现。
KuroAppBaseHttp *baseHttp = [[KuroAppBaseHttp alloc] init];
[baseHttp setDelegate:self];
[baseHttp
lolcat :一个在 Linux 终端中输出彩虹特效的命令行工具
brotherlamp
linux linux教程 linux视频 linux自学 linux资料
那些相信 Linux 命令行是单调无聊且没有任何乐趣的人们,你们错了,这里有一些有关 Linux 的文章,它们展示着 Linux 是如何的有趣和“淘气” 。
在本文中,我将讨论一个名为“lolcat”的小工具 – 它可以在终端中生成彩虹般的颜色。
何为 lolcat ?
Lolcat 是一个针对 Linux,BSD 和 OSX 平台的工具,它类似于 cat 命令,并为 cat
MongoDB索引管理(1)——[九]
eksliang
mongodb MongoDB管理索引
转载请出自出处:http://eksliang.iteye.com/blog/2178427 一、概述
数据库的索引与书籍的索引类似,有了索引就不需要翻转整本书。数据库的索引跟这个原理一样,首先在索引中找,在索引中找到条目以后,就可以直接跳转到目标文档的位置,从而使查询速度提高几个数据量级。
不使用索引的查询称
Informatica参数及变量
18289753290
Informatica 参数 变量
下面是本人通俗的理解,如有不对之处,希望指正 info参数的设置:在info中用到的参数都在server的专门的配置文件中(最好以parma)结尾 下面的GLOBAl就是全局的,$开头的是系统级变量,$$开头的变量是自定义变量。如果是在session中或者mapping中用到的变量就是局部变量,那就把global换成对应的session或者mapping名字。
[GLOBAL] $Par
python 解析unicode字符串为utf8编码字符串
酷的飞上天空
unicode
php返回的json字符串如果包含中文,则会被转换成\uxx格式的unicode编码字符串返回。
在浏览器中能正常识别这种编码,但是后台程序却不能识别,直接输出显示的是\uxx的字符,并未进行转码。
转换方式如下
>>> import json
>>> q = '{"text":"\u4
Hibernate的总结
永夜-极光
Hibernate
1.hibernate的作用,简化对数据库的编码,使开发人员不必再与复杂的sql语句打交道
做项目大部分都需要用JAVA来链接数据库,比如你要做一个会员注册的 页面,那么 获取到用户填写的 基本信后,你要把这些基本信息存入数据库对应的表中,不用hibernate还有mybatis之类的框架,都不用的话就得用JDBC,也就是JAVA自己的,用这个东西你要写很多的代码,比如保存注册信
SyntaxError: Non-UTF-8 code starting with '\xc4'
随便小屋
python
刚开始看一下Python语言,传说听强大的,但我感觉还是没Java强吧!
写Hello World的时候就遇到一个问题,在Eclipse中写的,代码如下
'''
Created on 2014年10月27日
@author: Logic
'''
print("Hello World!");
运行结果
SyntaxError: Non-UTF-8
学会敬酒礼仪 不做酒席菜鸟
aijuans
菜鸟
俗话说,酒是越喝越厚,但在酒桌上也有很多学问讲究,以下总结了一些酒桌上的你不得不注意的小细节。
细节一:领导相互喝完才轮到自己敬酒。敬酒一定要站起来,双手举杯。
细节二:可以多人敬一人,决不可一人敬多人,除非你是领导。
细节三:自己敬别人,如果不碰杯,自己喝多少可视乎情况而定,比如对方酒量,对方喝酒态度,切不可比对方喝得少,要知道是自己敬人。
细节四:自己敬别人,如果碰杯,一
《创新者的基因》读书笔记
aoyouzi
读书笔记 《创新者的基因》
创新者的基因
创新者的“基因”,即最具创意的企业家具备的五种“发现技能”:联想,观察,实验,发问,建立人脉。
第一部分破坏性创新,从你开始
第一章破坏性创新者的基因
如何获得启示:
发现以下的因素起到了催化剂的作用:(1) -个挑战现状的问题;(2)对某项技术、某个公司或顾客的观察;(3) -次尝试新鲜事物的经验或实验;(4)与某人进行了一次交谈,为他点醒
表单验证技术
百合不是茶
JavaScript DOM对象 String对象 事件
js最主要的功能就是验证表单,下面是我对表单验证的一些理解,贴出来与大家交流交流 ,数显我们要知道表单验证需要的技术点, String对象,事件,函数
一:String对象;通常是对字符串的操作;
1,String的属性;
字符串.length;表示该字符串的长度;
var str= "java"
web.xml配置详解之context-param
bijian1013
java servlet web.xml context-param
一.格式定义:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>contextConfigLocationValue></param-value>
</context-param>
作用:该元
Web系统常见编码漏洞(开发工程师知晓)
Bill_chen
sql PHP Web fckeditor 脚本
1.头号大敌:SQL Injection
原因:程序中对用户输入检查不严格,用户可以提交一段数据库查询代码,根据程序返回的结果,
获得某些他想得知的数据,这就是所谓的SQL Injection,即SQL注入。
本质:
对于输入检查不充分,导致SQL语句将用户提交的非法数据当作语句的一部分来执行。
示例:
String query = "SELECT id FROM users
【MongoDB学习笔记六】MongoDB修改器
bit1129
mongodb
本文首先介绍下MongoDB的基本的增删改查操作,然后,详细介绍MongoDB提供的修改器,以完成各种各样的文档更新操作 MongoDB的主要操作
show dbs 显示当前用户能看到哪些数据库
use foobar 将数据库切换到foobar
show collections 显示当前数据库有哪些集合
db.people.update,update不带参数,可
提高职业素养,做好人生规划
白糖_
人生
培训讲师是成都著名的企业培训讲师,他在讲课中提出的一些观点很新颖,在此我收录了一些分享一下。注:讲师的观点不代表本人的观点,这些东西大家自己揣摩。
1、什么是职业规划:职业规划并不完全代表你到什么阶段要当什么官要拿多少钱,这些都只是梦想。职业规划是清楚的认识自己现在缺什么,这个阶段该学习什么,下个阶段缺什么,又应该怎么去规划学习,这样才算是规划。
国外的网站你都到哪边看?
bozch
技术 网站 国外
学习软件开发技术,如果没有什么英文基础,最好还是看国内的一些技术网站,例如:开源OSchina,csdn,iteye,51cto等等。
个人感觉如果英语基础能力不错的话,可以浏览国外的网站来进行软件技术基础的学习,例如java开发中常用的到的网站有apache.org 里面有apache的很多Projects,springframework.org是spring相关的项目网站,还有几个感觉不错的
编程之美-光影切割问题
bylijinnan
编程之美
package a;
public class DisorderCount {
/**《编程之美》“光影切割问题”
* 主要是两个问题:
* 1.数学公式(设定没有三条以上的直线交于同一点):
* 两条直线最多一个交点,将平面分成了4个区域;
* 三条直线最多三个交点,将平面分成了7个区域;
* 可以推出:N条直线 M个交点,区域数为N+M+1。
关于Web跨站执行脚本概念
chenbowen00
Web 安全 跨站执行脚本
跨站脚本攻击(XSS)是web应用程序中最危险和最常见的安全漏洞之一。安全研究人员发现这个漏洞在最受欢迎的网站,包括谷歌、Facebook、亚马逊、PayPal,和许多其他网站。如果你看看bug赏金计划,大多数报告的问题属于 XSS。为了防止跨站脚本攻击,浏览器也有自己的过滤器,但安全研究人员总是想方设法绕过这些过滤器。这个漏洞是通常用于执行cookie窃取、恶意软件传播,会话劫持,恶意重定向。在
[开源项目与投资]投资开源项目之前需要统计该项目已有的用户数
comsci
开源项目
现在国内和国外,特别是美国那边,突然出现很多开源项目,但是这些项目的用户有多少,有多少忠诚的粉丝,对于投资者来讲,完全是一个未知数,那么要投资开源项目,我们投资者必须准确无误的知道该项目的全部情况,包括项目发起人的情况,项目的维持时间..项目的技术水平,项目的参与者的势力,项目投入产出的效益.....
oracle alert log file(告警日志文件)
daizj
oracle 告警日志文件 alert log file
The alert log is a chronological log of messages and errors, and includes the following items:
All internal errors (ORA-00600), block corruption errors (ORA-01578), and deadlock errors (ORA-00060)
关于 CAS SSO 文章声明
denger
SSO
由于几年前写了几篇 CAS 系列的文章,之后陆续有人参照文章去实现,可都遇到了各种问题,同时经常或多或少的收到不少人的求助。现在这时特此说明几点:
1. 那些文章发表于好几年前了,CAS 已经更新几个很多版本了,由于近年已经没有做该领域方面的事情,所有文章也没有持续更新。
2. 文章只是提供思路,尽管 CAS 版本已经发生变化,但原理和流程仍然一致。最重要的是明白原理,然后
初二上学期难记单词
dcj3sjt126com
english word
lesson 课
traffic 交通
matter 要紧;事物
happy 快乐的,幸福的
second 第二的
idea 主意;想法;意见
mean 意味着
important 重要的,重大的
never 从来,决不
afraid 害怕 的
fifth 第五的
hometown 故乡,家乡
discuss 讨论;议论
east 东方的
agree 同意;赞成
bo
uicollectionview 纯代码布局, 添加头部视图
dcj3sjt126com
Collection
#import <UIKit/UIKit.h>
@interface myHeadView : UICollectionReusableView
{
UILabel *TitleLable;
}
-(void)setTextTitle;
@end
#import "myHeadView.h"
@implementation m
N 位随机数字串的 JAVA 生成实现
FX夜归人
java Math 随机数 Random
/**
* 功能描述 随机数工具类<br />
* @author FengXueYeGuiRen
* 创建时间 2014-7-25<br />
*/
public class RandomUtil {
// 随机数生成器
private static java.util.Random random = new java.util.R
Ehcache(09)——缓存Web页面
234390216
ehcache 页面缓存
页面缓存
目录
1 SimplePageCachingFilter
1.1 calculateKey
1.2 可配置的初始化参数
1.2.1 cach
spring中少用的注解@primary解析
jackyrong
primary
这次看下spring中少见的注解@primary注解,例子
@Component
public class MetalSinger implements Singer{
@Override
public String sing(String lyrics) {
return "I am singing with DIO voice
Java几款性能分析工具的对比
lbwahoo
java
Java几款性能分析工具的对比
摘自:http://my.oschina.net/liux/blog/51800
在给客户的应用程序维护的过程中,我注意到在高负载下的一些性能问题。理论上,增加对应用程序的负载会使性能等比率的下降。然而,我认为性能下降的比率远远高于负载的增加。我也发现,性能可以通过改变应用程序的逻辑来提升,甚至达到极限。为了更详细的了解这一点,我们需要做一些性能
JVM参数配置大全
nickys
jvm 应用服务器
JVM参数配置大全
/usr/local/jdk/bin/java -Dresin.home=/usr/local/resin -server -Xms1800M -Xmx1800M -Xmn300M -Xss512K -XX:PermSize=300M -XX:MaxPermSize=300M -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=5 -
搭建 CentOS 6 服务器(14) - squid、Varnish
rensanning
varnish
(一)squid
安装
# yum install httpd-tools -y
# htpasswd -c -b /etc/squid/passwords squiduser 123456
# yum install squid -y
设置
# cp /etc/squid/squid.conf /etc/squid/squid.conf.bak
# vi /etc/
Spring缓存注解@Cache使用
tom_seed
spring
参考资料
http://www.ibm.com/developerworks/cn/opensource/os-cn-spring-cache/
http://swiftlet.net/archives/774
缓存注解有以下三个:
@Cacheable @CacheEvict @CachePut
dom4j解析XML时出现"java.lang.noclassdeffounderror: org/jaxen/jaxenexception"错误
xp9802
java.lang.NoClassDefFoundError: org/jaxen/JaxenExc
关键字: java.lang.noclassdeffounderror: org/jaxen/jaxenexception
使用dom4j解析XML时,要快速获取某个节点的数据,使用XPath是个不错的方法,dom4j的快速手册里也建议使用这种方式
执行时却抛出以下异常:
Exceptio