在没接触artTemplate之前,我都是手写字符串拼接做模板替换。这样做往往费时费力,而当我使用了artTemplate之后,只需要两句话,就搞定了全部!通过长期的使用artTemplate,现在我为大家总结出其最全的常用方法。
参考资料:https://github.com/aui/artTemplate
以上是官方文档以及下载地址。
一:安装使用
下载artTemplate后,找到template.js,引入到页面即可
引入代码:
<script type ="text/javascript" src ="artTemplate/dist/template.js" > script >
二:最基本的使用方法
官方给出的小demo就是最基本的使用方法:
<html >
<head >
<meta charset ="UTF-8" >
<title > basic-demotitle >
<script src ="../dist/template.js" > script >
head >
<body >
<div id ="content" > div >
<script id ="test" type ="text/html" >
{{if isAdmin }}
{{title }} </h1>
{{each list as value i }}
索引 {{i + 1}} : {{value }} </li>
{{/each }}
</ul>
{{/if }}
script >
<script >
var data = {
title: '基本例子' ,
isAdmin: true ,
list: ['文艺' , '博客' , '摄影' , '电影' , '民谣' , '旅行' , '吉他' ]
};
var html = template('test' , data);
document.getElementById('content' ).innerHTML = html;
script >
body >
html >
效果展示:
其实上诉例子给出的写法并不是唯一的写法,还有原生的写法和不重新命名的写法
原生写法:
<%if (admin){%>
<%include(
<%for (var i=0 ;i
<div > <%=i%> . <%=list[i].user%> div >
<%}%>
<%}%>
不重新命名的写法:
{{if admin }}
{{include 'admin _content '}}
{{each list }}
<div > {{$index }} . {{$value.user }} div >
{{/each }}
{{/if }}
总结 ,原生写法太过麻烦,不需要深究,推荐使用简易写法,我们可以使用{{each list as value i}}, 为每一项和其序号重新命名成value,i。这样,在后面只需要使用value和i即可。我们也可以不重新命名,直接使用{{each list}},但这样的话,后面的需要使用$加index和value。
三:引入模板页的写法
上诉的基本写法,是将模板写在页面内的,但是我们在实际开发中,一般不会将模板和js写在页面内,所以,我们会单独写一个模板页,并将其引入到页面内,进行模板替换,如果是这样的话,我们就需要对调用template的方法进行一些小小的调整,具体如下:
1.构建模板页
2.模板页代码
{{if isAdmin }}
<h1 > {{title }} h1 >
<ul >
{{each list as value i }}
<li > 索引 {{i + 1}} : {{value }} li >
{{/each }}
ul >
{{/if }}
3.进行模板替换 由于模板是单独写在一个页面的,所以我们需要ajax的get方法获取到模板页,然后在进行模板替换。
<script >
var obj = {
title: '模板页获取例子' ,
isAdmin: true ,
list: ['文艺' , '博客' , '摄影' , '电影' , '民谣' , '旅行' , '吉他' ]
};
var html=$.get('list-template.html' ,function (data) {
var render = template.compile(data);
var str = render(obj);
document.getElementById('content' ).innerHTML = str;
})
script >
这里,我使用的是jquery的get方法获取模板页,然后再利用template.compile()获取渲染内容,然后将数据obj渲染进去,最后添加到页面里即可。
注意:这时候就不能使用template()方法进行模板替换了,必须使用template.compile()及render()进行模板替换才行。
四:复杂数据(数组嵌套)的模板写法
在上诉例子中,我们都是使用了简单的数组进行数据替换,但是在实际开发中,后台给我们的数据可能不仅仅是一个数组那么简单,我们会遇到数组里嵌套对象数组这样的数据,那这样的数据该如何进行模板替换呢?下面我们来一起看一下:
数据形如:
inputData = {
"flag" : true ,
"orderArray" : [{
"id" : "1" ,
"name" : "张三" ,
"identity" : [
{
"id_type" : [{
"id" : 1 ,
"name" : "身份证"
}],
"id" : "110105199408286510"
}
],
"phone" : "15210329866" ,
"date_of_birth" : "19940828" ,
"address" : "北京" ,
}, {
"id" : "2" ,
"name" : "赵四" ,
"identity" : [{
"id_type" : [{
"id" : 1 ,
"name" : "身份证"
}],
"id" : "110105199508286510"
}],
"phone" : "15210329877" ,
"date_of_birth" : "19950828" ,
"address" : "北京" ,
}, {
"id" : "3" ,
"name" : "王五" ,
"identity" : [{
"id_type" : [{
"id" : 2 ,
"name" : "护照"
}],
"id" : "G49331247"
}],
"phone" : "15210329877" ,
"date_of_birth" : "20010124" ,
"address" : "上海" ,
}]
};
我们可以看到在inputData下有一个orderArray的对象数组,而在orderArray下还有identity,identity下还有id_type。如果我们需要使用id_type里的数据进行模板替换。那么我们只需要进行多次each循环数组即可。
具体操作如下:
<script type ="text/html" id ="test" >
{{if flag }}
{{each orderArray as value }}
<td > {{value.name }} </td>
{{each value.identity as v }}
{{each v.id _type as vi }}
{{vi.name }} </td>
{{/each }}
{{v.id }} </td>
{{/each }}
{{value.phone }} </td>
{{value.date _of _birth }} </td>
tr>
{{/each }}
{{/if }}
script >
只要理解template里每个参数,变量的含义,我们就能灵活运用这个优秀的模板替换工具了,相信看完我写的博客后,对大家有帮助。
下面是利用teplate.js做的一道面试题,主要是数组嵌套问题:
<html >
<head >
<meta charset ="utf-8" />
<title > title >
<style type ="text/css" >
style >
head >
<body >
<table border ="1px solid #ccc" style ="border-collapse:collapse;" id ="table" >
<tr >
<th > 姓名th >
<th > 证件类型th >
<th > 证件号th >
<th > 手机号th >
<th > 出生日期th >
tr >
<tbody id ="content" >
tbody >
table >
<div id ="info" style ="border: 1px solid #ccc; text-align: center; display: none;" >
<h2 > 编号:111h2 >
<p > 姓名:<span id ="name" > 张三span >p >
<p > 证件类型:<span id ="iden" > 张三span >p >
<p > 证件号:1111p >
<p > 手机号:<span id ="phone" > 张三span >p >
<p > 出生日期:<span id ="add" > 张三span >p >
<p > 所在地:北京p >
<p > <span > 取消span > <span id ="btn" > 确定span >p >
div >
body >
<script type ="text/html" id ="test" >
{{if flag }}
{{each orderArray as value }}
<td > {{value.name }} </td>
{{each value.identity as v }}
{{each v.id _type as vi }}
{{vi.name }} </td>
{{/each }}
{{v.id }} </td>
{{/each }}
{{value.phone }} </td>
{{value.date _of _birth }} </td>
tr>
{{/each }}
{{/if }}
script >
<script type ="text/javascript" src ="js/jquery.js" > script >
<script type ="text/javascript" src ="js/template.js" > script >
<script >
var inputData;
function getTestData () {
inputData = {
"flag" : true ,
"orderArray" : [{
"id" : "1" ,
"name" : "张三" ,
"identity" : [
{
"id_type" : [{
"id" : 1 ,
"name" : "身份证"
}],
"id" : "110105199408286510"
}
],
"phone" : "15210329866" ,
"date_of_birth" : "19940828" ,
"address" : "北京" ,
}, {
"id" : "2" ,
"name" : "赵四" ,
"identity" : [{
"id_type" : [{
"id" : 1 ,
"name" : "身份证"
}],
"id" : "110105199508286510"
}],
"phone" : "15210329877" ,
"date_of_birth" : "19950828" ,
"address" : "北京" ,
}, {
"id" : "3" ,
"name" : "王五" ,
"identity" : [{
"id_type" : [{
"id" : 2 ,
"name" : "护照"
}],
"id" : "G49331247"
}],
"phone" : "15210329877" ,
"date_of_birth" : "20010124" ,
"address" : "上海" ,
}]
};
var html = template('test' , inputData);
document.getElementById('content' ).innerHTML = html;
}
function clicked (id) {
var o, i;
o = document.getElementById(id).rows;
for (i = 0 ; i < o.length; i++){
o[i].ondblclick = function () {
var oo,op,oq,or;
oo = this .cells[0 ];
op = this .cells[1 ];
oq = this .cells[3 ];
or = this .cells[4 ];
document.getElementById('name' ).innerHTML=oo.innerHTML;
document.getElementById('iden' ).innerHTML=op.innerHTML;
document.getElementById('phone' ).innerHTML=oq.innerHTML;
document.getElementById('add' ).innerHTML=or.innerHTML;
document.getElementById('info' ).style.display='block' ;
document.getElementById('btn' ).onclick=function () {
document.getElementById('info' ).style.display='none' ;
}
}
}
}
getTestData();
clicked('table' )
script >
html >
你可能感兴趣的:(常用插件)
elasticsearch数据迁移之elasticdump
迷茫运维路
elasticsearch 中间件 elasticsearch linux 运维
系列文章目录第一章es集群搭建第二章es集群基本操作命令第三章es基于search-guard插件实现加密认证第四章es常用插件文章目录系列文章目录前言一、elasticdump是什么?二、安装elasticdump工具1.离线安装2.在线安装三、elasticdump相关参数四、使用elasticdump进行数据备份五、使用elasticdump进行数据恢复前言在企业实际生产环境中,避免不了要对
vscode常用插件安装
边同学_abe0
ESlint:js代码检测工具CodeSpellChecker:检查代码拼写错误的插件,检查单词拼写规范typeid:错误typeId:正确Beautify:代码的格式风格在VSCode的配置文件里添加editor.formatOnSave:true即可实现保存时自动格式化Gitlens:git源代码管理插件git多人协作的时候,需要查看日志,能够在当前代码中查看到操作人vscode-filehe
IDEA 常用插件推荐,美观又实用!
攀小黑
intellij-idea java ide
1、TONGYlLingma-YourAlCodingAssistant.Typeless,Codemore.通义灵码,是一款基于通义大模型的智能编码辅助工具,提供行级/函数级实时续写、自然语言生成代码、单元测试生成、代码注释生成、代码解释、研发智能问答、异常报错排查等能力,并针对阿里云SDK/API的使用场景调优,为开发者带来高效、流畅的编码体验。兼容VisualStudioCode、Visua
Pytest测试框架最常用的13个插件
-行业小白
pytest
pytest是强大单元测试框架,框架本身已经提供了非常做的功能,就算自身不支持的功能,由于他提供了比较标准的插件开发能力,我们也可以利用插件完成相关的功能。本文收集了一些最最常用的一些pytest插件。以下是pytest常用插件的功能介绍、GitHub地址(本文不提供安装和使用示例,如果看到功能介绍觉得有用,请访问GitHub进一步了解使用):1.pytest-html功能介绍:pytest-ht
Jmeter压测
澄子_向钱看
Jmeter本身是不能够展示内存,cpu和吞吐量的,但是可以通过添加插件的方式来对jmeter添加这些功能Jmeter常用插件介绍JMeter之ServerAgent监控资源一、数据库压测1.为什么要进行数据库压测不断给数据库施加压力,验证数据库处理的性能2.如何进行数据库压测测试的过程中,我们经常要对数据库表数据进行查询、修改、添加等操作。在用JMeter做性能或者接口等测试时,也可以让JMet
vscode 文件追踪_VsCode 技巧和常用插件收集
HcLyQ
vscode 文件追踪
[TOC]快捷键配置常用快捷键功能macOSlinux/windows用途命令模式cmd+shift+pctrl+shift+p各种指令功能都靠这个快键命令cmd+pctrl+p快速打开文件,或者执行指令呼出配置界面cmd+,ctrl+,打开设置菜单查询快捷键cmd+kcmd+sctrl+kctrl+s查询快捷键,注意是按2组切换语言模式cmd+kmctrl+km设置当前文本的语法渲染多行编辑cm
Obsidian 0x03:Obsidian 常用插件
Kevin骑熊猫打老虎
笔记 工具 其他
文章目录Obsidian常用插件设置附件文件夹路径删除笔记中不再使用的图片的遗留附件文件表格记录阅读位置在文件列表显示文件夹中包含的笔记数目最近打开文件格式转换样式全文检索绘图笔记特征检索其他常用插件Obsidian常用插件设置附件文件夹路径名称用途CustomAttachmentlocation像typora一样在路径中使用变量${filename}设置附件文件夹名直接写${filename}比
AI绘画Stable Diffusion(SD)常用插件
梨园猫
AI作画 人工智能 青少年编程
常用的AI绘画StableDiffusion(SD)软件插件有很多,可以帮助用户提升创作效率和作品质量。以下是一些常见的插件和扩展:1.**ControlNet**:通过提供额外的控制机制,使用户能够更精确地控制生成图像的特定部分。2.**Image2Image**:将现有图像作为输入,通过调整参数生成新的图像。3.**TextualInversion**:允许用户通过输入文本描述生成高质量的图像
Stable Diffusion教程——常用插件安装与测试(一)
知来者逆
Stable Diffusion stable diffusion sd插件 提示词
前言随着StableDiffusion不断演进,越来越多的开发者开始涉足插件开发。尽管网络上存在大量教程,但它们通常零散分布,逐个学习和查找非常耗时,使人感觉每天都在劳累思考。这里总结了StableDiffusion常用的插件安装与测试方法。prompt-all-in-one——提示词翻译补全插件地址:https://github.com/Physton/sd-webui-prompt-all-i
ubuntu安装docker及插件docker-compose(详细图文)
荒Huang
ubuntu docker linux
目录一、摘要二、说明三、安装docker及compose方式一:采用apt存储库安装1.设置Docker的存储库2.1安装最新Docker包及其常用插件docker-compose2.2安装指定Docker包及其常用插件docker-compose(1)列出所有存储库中docker版本(2)安装指定版本3.验证Docker引擎安装是否成功方式二:采用便捷脚本进行安装四、配置镜像加速五、卸载Dock
VSCode常用插件
vscode-iconsPathIntellisenseAutoRenameTagopeninbrowserGitLens
2023 Visual Studio Code 插件推荐:18 个提高开发效率的常用插件
VisualStudioCode(简称VSCode)是一款强大的开源代码编辑器,它拥有众多功能强大的扩展插件,使得开发者可以根据自己的需求来定制编辑器的功能和外观。在本文中,我们将分享一些非常实用的VSCode插件,这些插件将提高您的开发效率,使编码变得更加愉快。插件列表排名不分先后Chinese(Simplified)(简体中文)LanguagePackforVisualStudioCode这是
IDEA-常用插件
宣晨光
常用 idea
1、MybatisLogFree当我们使用mybatislog在控制台输出sql内容,输出内容将语句与参数分开打印,还需要手动将参数替换到指定位置。使用对应插件后,自动将输出内容组装成完整的可直接执行的SQL在插件市场查看对应名称,并安装。如果网络访问异常,建议下载安装包,进行离线安装MyBatisLogFree-IntelliJIDEsPlugin|Marketplace重启IDEA后,在too
vsCode常用插件
火爆猪皮
KeyPromoter鼠标完成某项操作时,会提示相应的快捷键。CodeGlance这也是强烈推荐的,用过sublime的同学会知道右侧有一个当前文件中代码的缩略图,这个插件可以让webstorm也具有此功能。MaterialThemeUI主题类的插件,可以改改界面颜色呀,文件图标啥的,至少比默认的稍微强那么点。。。。Chinese(Simplified)LanguagePackforVisualS
webpack5 常用插件使用
前端小咸鱼一条
webpack5 前端
webpack5常用插件使用1.CleanWebpackPlugin2.HtmlWebpackPlugin3.DefinePlugin4.CopyWebpackPlugin1.CleanWebpackPlugin问题:每次打包完都需要手动删除掉dist文件目录,使用CleanWebpackPlugin就可自动清除dist目录。作用:自动清除dist文件目录1.安装npminstallclean-w
VSCode_VS2019体验背景靓图
桃子酱紫君
笔记本儿 vscode 编辑器
装修笔记一、VSCode背景相关插件其他常用插件二、VS2019背景相关插件一、VSCode背景相关插件1、下载background插件2、在文件-首选项-设置搜索background,找到对应的属性设置修改代码为下图,主要修改一下图片地址:{"tabnine.experimentalAutoImports":true,//background的相关配置"update.enableWindowsB
谷歌浏览器开发常用插件
孙毛毛丶
http://web.jobbole.com/82701/XPathHelperWEB前端助手(FeHelper)WebDeveloperSnippetsProxySwitchyOmegaPerformance-AnalyserJSONViewCookieHacker
Kubernetes----Kubernetes学习从入门到实战循序渐进系列篇
redrose2100
Kubernetes kubernetes 学习 docker
Kubernetes----Kubernetes的产生背景与简介Kubernetes----Kubernetes组件简介及相关概念Kubernetes----Kubernetes常用插件简介Kubernetes----Kubernetes集群环境搭建Kubernetes----Kubernetes集群环境配置在Node节点或普通用户使用kubectl命令Kubernetes----Kubernet
使用vite创建vue+ts项目,整合常用插件(scss、vue-router、pinia、axios等)和配置
留白声
vue.js scss 前端 javascript typescript
一、检查node版本指令:node-v为什么要检查node版本?Vite需要Node.js版本18+,20+。然而,有些模板需要依赖更高的Node版本才能正常运行,当你的包管理器发出警告时,请注意升级你的Node版本。二、创建vite项目指令:npmcreatevite@latestvue-ts-app----templatevue-ts参考vite官网模板(template)::::infova
工具 - 打造 Mac “完美”终端(Terminal),一篇就够了
CatchZeng
原文:https://makeoptim.com/tool/terminal“完美”终端安装iTerm2zshOhMyZshPowerlevel10k常用插件autojumpzsh-syntax-highlightingzsh-autosuggestionsVSCode配置参考“完美”终端作为一个程序员,经常需要跟终端(Terminal)打交道。配置一个漂亮、好用的终端,不但心情愉悦,效率也能提升
Vue常用插件库
一心萝卜
其他
一、UI组件及框架element-饿了么出品的Vue2的webUI工具套件mint-ui-Vue2的移动UI元素iview-基于Vuejs的开源UI组件库Keen-UI-轻量级的基本UI组件合集vue-material-通过VueMaterial和Vue2建立精美的app应用muse-ui-三端样式一致的响应式UI库vuetify-为移动而生的VueJS2组件框架vonic-快速构建移动端单页应用
idea常用插件
清爽的暗之妖刀0369
idea intellij-idea java ide
1、CodeGlance编辑区迷你缩放图插件,鼠标悬停还有放大镜的功能。特别适用于处理大量代码时的快速定位需求,让我们更轻松地浏览和编辑代码。2、GsonFormatJson转Java类,该插件可以快速生成类,提高开发效率。使用方法:先新建一个类,选中类名,右键点击生成,点击GsonFormat3、POJOtoJson跟GsonFormat是两兄弟,GsonFormat是将JSON转为POJO,而
jmeter添加插件管理器
Mosicol
测试 测试 jmeter
1、下载jmeter插件管理器(jmeter-plugins-manager)下载地址:https://jmeter-plugins.org/install/Install/下载好之后,将该jar包放入到jmeter的安装路径下的lib/ext目录下,重启jmeter即可jmeter界面--Options--PluginsManager2、常用插件推荐支持Base64加解密等多个函数的插件Cust
【Unity】Unity 常用插件
是嘟嘟啊
Unity Unity基础功能 Unity项目管理 unity 游戏开发 游戏引擎
NGUI,算是最常用的UI插件了,下载地址:https://download.csdn.net/download/xiaoyaoACi/21028754FingerGestures,顾名思义,这个是支持移动设备所有触摸事件的插件,包括点击,滑动,还有自定义手势等等,云盘:http://pan.baidu.com/s/1mgDp5GkEasyTouch,也是用于移动平台上的RPG类的游戏,这里有篇文
pytest的常用插件和Allure测试报告
追梦不止~
pytest
pytest常用插件pytest-html插件安装:pipinstallpytest-html-U用途:生成html的测试报告用法:在.ini配置文件里面添加addopts=--html=report.html--self-contained-html效果:执行结果中存在html测试报告路径pytest-xdist插件安装:pipinstallpytest-xdist-U用途:可以使用并发的方式执
(Flutter 常用插件整理
wahkim
Flutter 开发 flutter
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档Flutter常用插件整理#Flutter城市列表,联系人列表,索引&悬停https://github.com/flutterchina/azlistviewazlistview:^2.0.0#Dart汉字转拼音https://github.com/flutterchina/lpinyinlpinyin:
IntelliJ IDEA的常用插件收集
hjc_042043
Java相关 intellij-idea java ide
AlibabaJavaCodingGuidelines:(代码质量检查)ChatGPTGPT-4-BitoAI(使用GPT4.0的AI工具)Tabnine:AICodeCompletion(使用AI自动完成代码编写)Translation(中英文翻译)jclasslibBytecodeviewer(字节码源文件查看,主要用来分析底层JVM的调用流程)FreeMyBatisTool(免费的数据库和m
探索JVS逻辑引擎的插件功能,提升业务效率
jonyleek
java gitee 低代码 开源
在当今数字化时代,业务逻辑处理在各类应用程序和系统中扮演着至关重要的角色。JVS逻辑引擎满足多样化的数据处理和分析需求。本文主要介绍业务逻辑中各个插件的功能,帮助用户更好地理解如何通过这些插件实现各种数据处理和分析需求。通过合理的配置和使用这些插件,能够构建出高效、稳定的应用程序,提升用户体验,满足不断变化的市场需求。JVS逻辑引擎各节点说明JVS逻辑引擎中配置了丰富的插件,如:常用插件、模型插件
黑马程序员pink老师前端入门教程,零基础必看的h5(html5)+css3+移动端
橘子味红烧肉
前端 html5 css3
一、HTML5基础1、网页的相关概念1.1什么是网页?1.2什么是HTML?2、常用浏览器2.1常用的浏览器2.2浏览器内核3、Web标准3.1为啥需要Web标准?3.2Web标准的构成:4、HTML语法规范4.1基本语法概述:4.2标签关系:5、HTML基本结构标签5.1HTML网页:6、开发工具6.1VSCode常用快捷键:第二篇:前端VSCode常用插件-快捷键-以及常用技巧-pink老师-
IntelliJ Idea实用插件推荐
苜蓿花乐园
知识分享 JAVA intellij-idea java ide
目录一、插件安装二、常用插件A、代码规范AlibabaJavaCodingGuidelinesSonarLintB、快捷开发aiXcoder-AI代码生成AWSToolkit-AI代码生成CodeGeeX-AI代码生成CodeGlance-代码缩略图camelCase-格式转换GsonFormatPlus-json代码生成SequenceGiagram-生成代码时序图MybatisX-mapper
Spring4.1新特性——Spring MVC增强
jinnianshilongnian
spring 4.1
目录
Spring4.1新特性——综述
Spring4.1新特性——Spring核心部分及其他
Spring4.1新特性——Spring缓存框架增强
Spring4.1新特性——异步调用和事件机制的异常处理
Spring4.1新特性——数据库集成测试脚本初始化
Spring4.1新特性——Spring MVC增强
Spring4.1新特性——页面自动化测试框架Spring MVC T
mysql 性能查询优化
annan211
java sql 优化 mysql 应用服务器
1 时间到底花在哪了?
mysql在执行查询的时候需要执行一系列的子任务,这些子任务包含了整个查询周期最重要的阶段,这其中包含了大量为了
检索数据列到存储引擎的调用以及调用后的数据处理,包括排序、分组等。在完成这些任务的时候,查询需要在不同的地方
花费时间,包括网络、cpu计算、生成统计信息和执行计划、锁等待等。尤其是向底层存储引擎检索数据的调用操作。这些调用需要在内存操
windows系统配置
cherishLC
windows
删除Hiberfil.sys :使用命令powercfg -h off 关闭休眠功能即可:
http://jingyan.baidu.com/article/f3ad7d0fc0992e09c2345b51.html
类似的还有pagefile.sys
msconfig 配置启动项
shutdown 定时关机
ipconfig 查看网络配置
ipconfig /flushdns
人体的排毒时间
Array_06
工作
========================
|| 人体的排毒时间是什么时候?||
========================
转载于:
http://zhidao.baidu.com/link?url=ibaGlicVslAQhVdWWVevU4TMjhiKaNBWCpZ1NS6igCQ78EkNJZFsEjCjl3T5EdXU9SaPg04bh8MbY1bR
ZooKeeper
cugfy
zookeeper
Zookeeper是一个高性能,分布式的,开源分布式应用协调服务。它提供了简单原始的功能,分布式应用可以基于它实现更高级的服务,比如同步, 配置管理,集群管理,名空间。它被设计为易于编程,使用文件系统目录树作为数据模型。服务端跑在java上,提供java和C的客户端API。 Zookeeper是Google的Chubby一个开源的实现,是高有效和可靠的协同工作系统,Zookeeper能够用来lea
网络爬虫的乱码处理
随意而生
爬虫 网络
下边简单总结下关于网络爬虫的乱码处理。注意,这里不仅是中文乱码,还包括一些如日文、韩文 、俄文、藏文之类的乱码处理,因为他们的解决方式 是一致的,故在此统一说明。 网络爬虫,有两种选择,一是选择nutch、hetriex,二是自写爬虫,两者在处理乱码时,原理是一致的,但前者处理乱码时,要看懂源码后进行修改才可以,所以要废劲一些;而后者更自由方便,可以在编码处理
Xcode常用快捷键
张亚雄
xcode
一、总结的常用命令:
隐藏xcode command+h
退出xcode command+q
关闭窗口 command+w
关闭所有窗口 command+option+w
关闭当前
mongoDB索引操作
adminjun
mongodb 索引
一、索引基础: MongoDB的索引几乎与传统的关系型数据库一模一样,这其中也包括一些基本的优化技巧。下面是创建索引的命令: > db.test.ensureIndex({"username":1}) 可以通过下面的名称查看索引是否已经成功建立: &nbs
成都软件园实习那些话
aijuans
成都 软件园 实习
无聊之中,翻了一下日志,发现上一篇经历是很久以前的事了,悔过~~
断断续续离开了学校快一年了,习惯了那里一天天的幼稚、成长的环境,到这里有点与世隔绝的感觉。不过还好,那是刚到这里时的想法,现在感觉在这挺好,不管怎么样,最要感谢的还是老师能给这么好的一次催化成长的机会,在这里确实看到了好多好多能想到或想不到的东西。
都说在外面和学校相比最明显的差距就是与人相处比较困难,因为在外面每个人都
Linux下FTP服务器安装及配置
ayaoxinchao
linux FTP服务器 vsftp
检测是否安装了FTP
[root@localhost ~]# rpm -q vsftpd
如果未安装:package vsftpd is not installed 安装了则显示:vsftpd-2.0.5-28.el5累死的版本信息
安装FTP
运行yum install vsftpd命令,如[root@localhost ~]# yum install vsf
使用mongo-java-driver获取文档id和查找文档
BigBird2012
driver
注:本文所有代码都使用的mongo-java-driver实现。
在MongoDB中,一个集合(collection)在概念上就类似我们SQL数据库中的表(Table),这个集合包含了一系列文档(document)。一个DBObject对象表示我们想添加到集合(collection)中的一个文档(document),MongoDB会自动为我们创建的每个文档添加一个id,这个id在
JSONObject以及json串
bijian1013
json JSONObject
一.JAR包简介
要使程序可以运行必须引入JSON-lib包,JSON-lib包同时依赖于以下的JAR包:
1.commons-lang-2.0.jar
2.commons-beanutils-1.7.0.jar
3.commons-collections-3.1.jar
&n
[Zookeeper学习笔记之三]Zookeeper实例创建和会话建立的异步特性
bit1129
zookeeper
为了说明问题,看个简单的代码,
import org.apache.zookeeper.*;
import java.io.IOException;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.ThreadLocal
【Scala十二】Scala核心六:Trait
bit1129
scala
Traits are a fundamental unit of code reuse in Scala. A trait encapsulates method and field definitions, which can then be reused by mixing them into classes. Unlike class inheritance, in which each c
weblogic version 10.3破解
ronin47
weblogic
版本:WebLogic Server 10.3
说明:%DOMAIN_HOME%:指WebLogic Server 域(Domain)目录
例如我的做测试的域的根目录 DOMAIN_HOME=D:/Weblogic/Middleware/user_projects/domains/base_domain
1.为了保证操作安全,备份%DOMAIN_HOME%/security/Defa
求第n个斐波那契数
BrokenDreams
今天看到群友发的一个问题:写一个小程序打印第n个斐波那契数。
自己试了下,搞了好久。。。基础要加强了。
&nbs
读《研磨设计模式》-代码笔记-访问者模式-Visitor
bylijinnan
java 设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
import java.util.ArrayList;
import java.util.List;
interface IVisitor {
//第二次分派,Visitor调用Element
void visitConcret
MatConvNet的excise 3改为网络配置文件形式
cherishLC
matlab
MatConvNet为vlFeat作者写的matlab下的卷积神经网络工具包,可以使用GPU。
主页:
http://www.vlfeat.org/matconvnet/
教程:
http://www.robots.ox.ac.uk/~vgg/practicals/cnn/index.html
注意:需要下载新版的MatConvNet替换掉教程中工具包中的matconvnet:
http
ZK Timeout再讨论
chenchao051
zookeeper timeout hbase
http://crazyjvm.iteye.com/blog/1693757 文中提到相关超时问题,但是又出现了一个问题,我把min和max都设置成了180000,但是仍然出现了以下的异常信息:
Client session timed out, have not heard from server in 154339ms for sessionid 0x13a3f7732340003
CASE WHEN 用法介绍
daizj
sql group by case when
CASE WHEN 用法介绍
1. CASE WHEN 表达式有两种形式
--简单Case函数
CASE sex
WHEN '1' THEN '男'
WHEN '2' THEN '女'
ELSE '其他' END
--Case搜索函数
CASE
WHEN sex = '1' THEN
PHP技巧汇总:提高PHP性能的53个技巧
dcj3sjt126com
PHP
PHP技巧汇总:提高PHP性能的53个技巧 用单引号代替双引号来包含字符串,这样做会更快一些。因为PHP会在双引号包围的字符串中搜寻变量, 单引号则不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的函数译注: PHP手册中说echo是语言结构,不是真正的函数,故把函数加上了双引号)。 1、如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍
Yii框架中CGridView的使用方法以及详细示例
dcj3sjt126com
yii
CGridView显示一个数据项的列表中的一个表。
表中的每一行代表一个数据项的数据,和一个列通常代表一个属性的物品(一些列可能对应于复杂的表达式的属性或静态文本)。 CGridView既支持排序和分页的数据项。排序和分页可以在AJAX模式或正常的页面请求。使用CGridView的一个好处是,当用户浏览器禁用JavaScript,排序和分页自动退化普通页面请求和仍然正常运行。
实例代码如下:
Maven项目打包成可执行Jar文件
dyy_gusi
assembly
Maven项目打包成可执行Jar文件
在使用Maven完成项目以后,如果是需要打包成可执行的Jar文件,我们通过eclipse的导出很麻烦,还得指定入口文件的位置,还得说明依赖的jar包,既然都使用Maven了,很重要的一个目的就是让这些繁琐的操作简单。我们可以通过插件完成这项工作,使用assembly插件。具体使用方式如下:
1、在项目中加入插件的依赖:
<plugin>
php常见错误
geeksun
PHP
1. kevent() reported that connect() failed (61: Connection refused) while connecting to upstream, client: 127.0.0.1, server: localhost, request: "GET / HTTP/1.1", upstream: "fastc
修改linux的用户名
hongtoushizi
linux change password
Change Linux Username
更改Linux用户名,需要修改4个系统的文件:
/etc/passwd
/etc/shadow
/etc/group
/etc/gshadow
古老/传统的方法是使用vi去直接修改,但是这有安全隐患(具体可自己搜一下),所以后来改成使用这些命令去代替:
vipw
vipw -s
vigr
vigr -s
具体的操作顺
第五章 常用Lua开发库1-redis、mysql、http客户端
jinnianshilongnian
nginx lua
对于开发来说需要有好的生态开发库来辅助我们快速开发,而Lua中也有大多数我们需要的第三方开发库如Redis、Memcached、Mysql、Http客户端、JSON、模板引擎等。
一些常见的Lua库可以在github上搜索,https://github.com/search?utf8=%E2%9C%93&q=lua+resty。
Redis客户端
lua-resty-r
zkClient 监控机制实现
liyonghui160com
zkClient 监控机制实现
直接使用zk的api实现业务功能比较繁琐。因为要处理session loss,session expire等异常,在发生这些异常后进行重连。又因为ZK的watcher是一次性的,如果要基于wather实现发布/订阅模式,还要自己包装一下,将一次性订阅包装成持久订阅。另外如果要使用抽象级别更高的功能,比如分布式锁,leader选举
在Mysql 众多表中查找一个表名或者字段名的 SQL 语句
pda158
mysql
在Mysql 众多表中查找一个表名或者字段名的 SQL 语句:
方法一:SELECT table_name, column_name from information_schema.columns WHERE column_name LIKE 'Name';
方法二:SELECT column_name from information_schema.colum
程序员对英语的依赖
Smile.zeng
英语 程序猿
1、程序员最基本的技能,至少要能写得出代码,当我们还在为建立类的时候思考用什么单词发牢骚的时候,英语与别人的差距就直接表现出来咯。
2、程序员最起码能认识开发工具里的英语单词,不然怎么知道使用这些开发工具。
3、进阶一点,就是能读懂别人的代码,有利于我们学习人家的思路和技术。
4、写的程序至少能有一定的可读性,至少要人别人能懂吧...
以上一些问题,充分说明了英语对程序猿的重要性。骚年
Oracle学习笔记(8) 使用PLSQL编写触发器
vipbooks
oracle sql 编程 活动 Access
时间过得真快啊,转眼就到了Oracle学习笔记的最后个章节了,通过前面七章的学习大家应该对Oracle编程有了一定了了解了吧,这东东如果一段时间不用很快就会忘记了,所以我会把自己学习过的东西做好详细的笔记,用到的时候可以随时查找,马上上手!希望这些笔记能对大家有些帮助!
这是第八章的学习笔记,学习完第七章的子程序和包之后