Python的平凡之路(15)
<style>
如果整个页面的宽度 > 900px时:
{
.c{
共有
}
.c1{
独有
}
}
.c2{
独有
}
</style>
<div class='c c1'></div>
<div class='c c2'></div>
宽度,百分比
页面最外层:像素的宽度 => 最外层设置绝对宽度
img{
border: 0;
}
d、作业中的数量输入框
值 | 描述 |
---|---|
absolute |
生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位。 元素的位置通过 "left", "top", "right" 以及 "bottom" 属性进行规定。 |
fixed |
生成绝对定位的元素,相对于浏览器窗口进行定位。 元素的位置通过 "left", "top", "right" 以及 "bottom" 属性进行规定。 |
relative |
生成相对定位的元素,相对于其正常位置进行定位。 因此,"left:20" 会向元素的 LEFT 位置添加 20 像素。 |
static | 默认值。没有定位,元素出现在正常的流中(忽略 top, bottom, left, right 或者 z-index 声明)。 |
inherit | 规定应该从父元素继承 position 属性的值。 |
值 | 描述 | CSS |
---|---|---|
background-color | 规定要使用的背景颜色。 | 1 |
background-position | 规定背景图像的位置。 | 1 |
background-size | 规定背景图片的尺寸。 | 3 |
background-repeat | 规定如何重复背景图像。 | 1 |
background-origin | 规定背景图片的定位区域。 | 3 |
background-clip | 规定背景的绘制区域。 | 3 |
background-attachment | 规定背景图像是否固定或者随着页面的其余部分滚动。 | 1 |
background-image | 规定要使用的背景图像。 | 1 |
inherit | 规定应该从父元素继承 background 属性的设置。 | 1 |
未访问、已访问、悬浮和活动链接,并设置它们的样式:
a:link {color:blue;}
a:visited {color:blue;}
a:hover {color:red;}
a:active {color:yellow;}
值 | 描述 |
---|---|
auto | 默认。堆叠顺序与父元素相等。 |
number | 设置元素的堆叠顺序。 |
inherit | 规定应该从父元素继承 z-index 属性的值。 |
值 | 描述 | 测试 |
---|---|---|
value | 规定不透明度。从 0.0 (完全透明)到 1.0(完全不透明)。 | 测试 |
inherit | 应该从父元素继承 opacity 属性的值。 |
JavaScript代码存在形式:
- Head中
<script>
//javascript代码
alert(123);
</script>
<script type="text/javascript">
//javascript代码
alert(123);
</script>
- 文件
<script src='js文件路径'> </script>
PS: JS代码需要放置在 <body>标签内部的最下方
多行注释 /* */
<script
type
=
"text/javascript"
>
/
/
全局变量
name
=
'seven'
;
function func(){
/
/
局部变量
var age
=
18
;
/
/
全局变量
gender
=
"男"
}
<
/
script>
a.chartAt(索引位置)
a.substring(起始位置,结束位置)
a.lenght 获取当前字符串长度
obj.substring(
from
, to) 根据索引获取子序列
obj.
slice
(start, end) 切片
$数字:匹配的第n个组内容;
$&:当前匹配的内容;
$`:位于匹配子串左侧的文本;
$':位于匹配子串右侧的文本
$$:直接量$符号
obj.splice(n,
0
,val) 指定位置插入元素
obj.splice(n,
1
,val) 指定位置替换元素
obj.splice(n,
1
) 指定位置删除元素
obj.
slice
( ) 切片
a = [11,22,33,44]
for(var item in a){
console.log(item);
}
a = {'k1':'v1','k2':'v2'}
for(var item in a){
console.log(item);
}
var names = ["alex", "tony", "rain"]; for(var i=0;i<names.length;i++){
console.log(i);
console.log(names[i]);
}
var names = ["alex", "tony", "rain"]; for(var index in names){
console.log(index);
console.log(names[index])
}
for(var i=0;i<10;i=i+1){
}
a = [11,22,33,44]
for(var i=0;i<a.length;i=i+1){
}
(3)不支持字典的循环
}else if(条件){
}else if(条件){
}else{
}
== 值相等
=== 值和类型都相等
&& and
|| or
var arg
=
111
;
function f3(){
console.log(arg);
}
return
f3;
}
ret
=
f2();
ret();
标签.innerText
对标签内部文本进行重新复制
标签.innerText = ""
b. className
tag.className =》 直接整体做操作
tag.classList.add('样式名') 添加指定样式
tag.classList.remove('样式名') 删除指定样式
PS:
<div onclick='func();'>点我</div>
<script>
function func(){
}
</script>
获取值
checkbox对象.checked
设置值
checkbox对象.checked = true
document.childNodes 继承自上面讲的Node类型,可以返回文档的直接子节点(通常包括文档声明和html节点)
document.documentElement 可以直接拿到html节点的引用(等价于document.getElementsByTagName(“html”)[0])。
document.body body节点的引用
document.title 页面的title,可以修改,会改变浏览器标签上的名字
document.URL 页面的url
document.referrer 取得referrer,也就是打开这个页面的那个页面的地址,做来源统计时候比较有用
document.domain 取得域名,可以设置,但是通常只能设置为不包含子域名的情况,在一些子域名跨域情况下有效。
try {
/ / 这段代码从上往下运行,其中任何一个语句抛出异常该代码块就结束运行 } catch (e) { / / 如果 try 代码块中抛出了异常,catch代码块中的代码就会被执行。
/ / e是一个局部变量,用来指向Error对象或者其他抛出的对象 } finally {
/ / 无论 try 中代码是否有异常抛出(甚至是 try 代码块中有 return 语句), finally 代码块中始终会被执行。 } |
注:主动跑出异常 throw Error('xxxx')
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>第一个页面</title>
<style>
img{
border: 0;
}
</style>
</head>
<body>
<a href="http://www.sogou.com">asdf</a>
<a href="http://www.sogou.com">
<img src="wgl.jpg" style="width: 200px;height: 300px">
</a> </body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>第二个页面</title>
<style>
.pg-header {
<!-- 高度48px -->
height: 48px;
background-color: black;
color: #DDDDDD;
position: fixed;
top: 0;
right: 0;
left: 0;
}
.pg-body{
background-color: #DDDDDD;
height: 5000px;
<!-- 离顶部55px -->
margin-top: 55px; }
</style>
</head> <body>
<div class="pg-header">头部</div>
<div class="pg-body">内容</div>
<div style="position: relative;width: 500px;height: 200px;border: 1px solid red;margin: 0 auto;">
<div style="position: absolute;left:0;bottom: 0;width: 50px;height: 50px;background-color: black; "> </div>
</div>
<div style="position: relative;width: 500px;height: 200px;border: 1px solid red;margin: 0 auto;">
<div style="position: absolute;right:0;top: 0;width: 50px;height: 50px;background-color: black; "> </div>
</div> </body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>第三个页面</title>
</head>
<body>
<div style="z-index: 10;position: fixed;top:50%;left:50%;
margin-left: -250px;margin-top: -200px;background-color: white;height: 40px;width: 500px;">
<input type="text" />
<input type="text" />
<input type="text" />
</div>
<div style="z-index: 9;position: fixed;background-color: black;
top:0;
bottom: 0;
right: 0;
left:0;
opacity: 0.5;
"></div>
<div style="height: 5000px;background-color: green;">
这是一个嵌套!
</div>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>第四个页面</title>
</head>
<body>
<div style="height: 500px;width: 500px;overflow: auto">
<img src="wgl.jpg">
</div>
<div style="height: 500px;width: 500px;overflow: hidden">
<img src="2.jpg">
</div>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>第五个页面</title>
<style>
.pg-header{
position: fixed;
right:0;
left:0;
top:0;
height:48px;
background-color: #2459a2;
line-height:48px;
}
.pg-body{
margin-top:50px;
}
.w{
width:980px;
margin:0 auto;
}
.pg-header .menu{
display: inline-block;
/*上 右 下 左*/
padding:0 10px 0 10px;
color: white;
}
/*当鼠标移动到当前标签上时,以下css属性才生效*/
.pg-header .menu:hover{
background-color: blue;
}
</style>
</head>
<div class="pg-header">
<div class="w">
<a class="logo">LOGO</a>
<a class="menu">全部</a>
<a class="menu">42区</a>
<a class="menu">段子</a>
<a class="menu">1024</a>
</div>
<div class="pg-body">
<div class="w">a</div>
</div>
</div>
<body> </body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>第六个页面</title>
</head>
<body>
<div style="height:100px;"></div>
<div style="background-image: url(icon_18_118.png);background-repeat: no-repeat;height: 40px;width:40px;border: 1px solid red;"></div>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>第七个页面</title>
</head>
<body>
<div style="height: 35px;width: 400px;position: relative;">
<input type="text" style="height: 35px;width:370px;padding-right: 30px;">
<span style="position: absolute;right: 6px;top:10px;background-image: url(i_name.jpg);
height:16px;width: 16px;display: inline-block;"></span>
</div>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>第八个页面</title>
</head>
<body>
<div id="i1">欢迎老男孩莅临指导</div>
<script>
function func() {
var tag = document.getElementById('i1');
var content = tag.innerText;
var f = content.charAt(0);
var l = content.substring(1,content.length);
var new_content = l + f;
tag.innerText = new_content;
}
setInterval('func()',500);
</script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>第九个页面</title>
</head>
<body>
<div id="i1">我是i1</div>
<a>asdf</a>
<a>909</a>
<a>kafsufd</a>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>第十个页面</title>
<style>
.hide{
display: none;
}
.c1{
position: fixed;
left:0;
top:0;
right:0;
bottom:0;
background-color: black;
opacity:0.6;
z-index:9
}
.c2{
width: 500px;
height: 400px;
background-color: white;
position: fixed;
left: 50%;
top: 50%;
margin-left: -250px;
margin-top: -200px;
z-index: 10; }
</style>
</head>
<body style="margin: 0;">
<div>
<input type="button" value="添加" onclick="ShowModel();"/>
</div>
<!-- 遮罩层开始 -->
<div id="i1" class="c1 hide"></div>
<!-- 遮罩层结束 -->
<!-- 弹出框开始 -->
<div id="i2" class="c2 hide">
<p><input type="text"/></p>
<p><input type="text"/></p>
<p>
<input type="button" value="取消" onclick="HideModel();"/>
<input type="button" value="确定"/>
</p>
</div>
<!-- 弹出框结束 -->
<script>
function ShowModel() {
document.getElementById('i1').classList.remove('hide')
document.getElementById('i2').classList.remove('hide')
}
function HideModel() {
document.getElementById('i1').classList.add('hide')
document.getElementById('i2').classList.add('hide') }
</script>
</body>
</html>
t11.html
<!DOCTYPE html> | |
<html lang="en"> | |
<head> | |
<meta charset="UTF-8"> | |
<title>Title</title> | |
<style> | |
.hide{ | |
display: none; | |
} | |
.c1{ | |
position: fixed; | |
left: 0; | |
top: 0; | |
right: 0; | |
bottom: 0; | |
background-color: black; | |
opacity: 0.6; | |
z-index: 9; | |
} | |
.c2{ | |
width: 500px; | |
height: 400px; | |
background-color: white; | |
position: fixed; | |
left: 50%; | |
top: 50%; | |
margin-left: -250px; | |
margin-top: -200px; | |
z-index: 10; | |
} | |
</style> | |
</head> | |
<body style="margin: 0;"> | |
<div> | |
<input type="button" value="添加" onclick="ShowModel();" /> | |
<input type="button" value="全选" onclick="ChooseAll();" /> | |
<input type="button" value="取消" onclick="CancleAll();" /> | |
<input type="button" value="反选" onclick="ReverseAll();" /> | |
<table> | |
<thead> | |
<tr> | |
<th>选择</th> | |
<th>主机名</th> | |
<th>端口</th> | |
</tr> | |
</thead> | |
<tbody id="tb"> | |
<tr> | |
<td> | |
<input type="checkbox" /> | |
</td> | |
<td>1.1.1.1</td> | |
<td>190</td> | |
</tr> | |
<tr> | |
<td><input type="checkbox"f id="test" /></td> | |
<td>1.1.1.2</td> | |
<td>192</td> | |
</tr> | |
<tr> | |
<td><input type="checkbox" /></td> | |
<td>1.1.1.3</td> | |
<td>193</td> | |
</tr> | |
</tbody> | |
</table> | |
</div> | |
<!-- 遮罩层开始 --> | |
<div id="i1" class="c1 hide"></div> | |
<!-- 遮罩层结束 --> | |
<!-- 弹出框开始 --> | |
<div id="i2" class="c2 hide"> | |
<p><input type="text" /></p> | |
<p><input type="text" /></p> | |
<p> | |
<input type="button" value="取消" onclick="HideModel();"/> | |
<input type="button" value="确定"/> | |
</p> | |
</div> | |
<!-- 弹出框结束 --> | |
<script> | |
function ShowModel(){ | |
document.getElementById('i1').classList.remove('hide'); | |
document.getElementById('i2').classList.remove('hide'); | |
} | |
function HideModel(){ | |
document.getElementById('i1').classList.add('hide'); | |
document.getElementById('i2').classList.add('hide'); | |
} | |
function ChooseAll(){ | |
var tbody = document.getElementById('tb'); | |
// 获取所有的tr | |
var tr_list = tbody.children; | |
for(var i=0;i<tr_list.length;i++){ | |
// 循环所有的tr,current_tr | |
var current_tr = tr_list[i]; | |
var checkbox = current_tr.children[0].children[0]; | |
checkbox.checked = true; | |
} | |
} | |
function CancleAll(){ | |
var tbody = document.getElementById('tb'); | |
// 获取所有的tr | |
var tr_list = tbody.children; | |
for(var i=0;i<tr_list.length;i++){ | |
// 循环所有的tr,current_tr | |
var current_tr = tr_list[i]; | |
var checkbox = current_tr.children[0].children[0]; | |
checkbox.checked = false; | |
} | |
} | |
function ReverseAll(){ | |
var tbody = document.getElementById('tb'); | |
// 获取所有的tr | |
var tr_list = tbody.children; | |
for(var i=0;i<tr_list.length;i++){ | |
// 循环所有的tr,current_tr | |
var current_tr = tr_list[i]; | |
var checkbox = current_tr.children[0].children[0]; | |
if(checkbox.checked){checkbox.checked = false;}else{checkbox.checked = true;}}} | |
</script> | |
</body> | |
</html> |
t12.html
<!DOCTYPE html> | |
<html lang="en"> | |
<head> | |
<meta charset="UTF-8"> | |
<title>Title</title> | |
<style> | |
.hide{ | |
display: none; | |
} | |
.item .header{ | |
height: 35px; | |
background-color: #2459a2; | |
color: white; | |
line-height: 35px; | |
} | |
</style> | |
</head> | |
<body> | |
<div style="height: 48px"></div> | |
<div style="width: 300px"> | |
<div class="item"> | |
<div id='i1' class="header" onclick="ChangeMenu('i1');">菜单1</div> | |
<div class="content"> | |
<div>内容1</div> | |
<div>内容1</div> | |
<div>内容1</div> | |
</div> | |
</div> | |
<div class="item"> | |
<div id='i2' class="header" onclick="ChangeMenu('i2');">菜单2</div> | |
<div class="content hide"> | |
<div>内容2</div> | |
<div>内容2</div> | |
<div>内容2</div> | |
</div> | |
</div> | |
<div class="item"> | |
<div id='i3' class="header" onclick="ChangeMenu('i3');">菜单3</div> | |
<div class="content hide"> | |
<div>内容3</div> | |
<div>内容3</div> | |
<div>内容3</div> | |
</div> | |
</div> | |
<div class="item"> | |
<div id='i4' class="header" onclick="ChangeMenu('i4');">菜单4</div> | |
<div class="content hide"> | |
<div>内容4</div> | |
<div>内容4</div> | |
<div>内容4</div> | |
</div> | |
</div> | |
</div> | |
<script> | |
function ChangeMenu(nid){ | |
var current_header = document.getElementById(nid); | |
var item_list = current_header.parentElement.parentElement.children; | |
for(var i=0;i<item_list.length;i++){ | |
var current_item = item_list[i]; | |
current_item.children[1].classList.add('hide'); | |
} | |
current_header.nextElementSibling.classList.remove('hide'); | |
} | |
</script> | |
</body> | |
</html> |
<!DOCTYPE html> | |
<html lang="en"> | |
<head> | |
<meta charset="UTF-8"> | |
<title>Title</title> | |
</head> | |
<body> | |
<div> | |
<div></div> | |
<div> | |
c1 | |
</div> | |
</div> | |
<div> | |
<div></div> | |
<div id="i1"> | |
c2 | |
</div> | |
</div> | |
<div> | |
<div></div> | |
<div> | |
c3 | |
</div> | |
</div> | |
</body> | |
</html> |
通过对元素的ID访问,这是DOM一个基础的访问页面元素的方法.
example:
<div id="divid">测试</div>
<script language="javascript">
var div=document.getElementByID("divid”);
alert (div.nodeName); //显示元素名
</script>
如果id在元素中不是唯一的,那么获得的将是第一个ID.
2.getElementsByName(name)
仅用于input radio checkbox等元素,返回名字为name的元素数组
example:
<div name="george"></div>
<input name="george"></div>
<script language=javascript>
var ge=document.getElementsByName("george");
alert (georges.length); //获取georges个数,对div唔效果
</script>
3.getElementsByTagName(tagname)
返回具有tagname的元素列表数组.处理大的DOM结构会用到它
(二),DOM Element常用方法
1.appendChild(node) //增加内容
向当前对象追加节点,example:
<div id="test">123</div>
<script type="text/javascript">
var newdiv=document.createElement("div");
var newtext=document.createTextNode("A new div");
newdiv.appendChild(newtext) ;
document.getElementById("test").appendChild(newdiv) ;
</script>
当然,上面的功能用document.getElementById("test").innerHTML="测试一下"就可实现,遗憾的是,innerHTML不属于DOM.
2,removeChild(childreference)
移除当前节点的子节点,并返回节点
<div id="father"><div id="child">A child</div></div>
<script type="text/javascript">
var childnode=document.getElementById("child");
var removednode=document.getElementById("father").removeChild(childnode)
</script>
3.cloneNode(deepBoolean)
复制并返回当前的复制节点,由于复制了原节点的id属性,所以在document树中要改ID属性,以确保ID唯一性.
4,insertBefore(newElment,targetElement) 插入新的节点
在当前节点插入一个新节点,如果targetElement为null,那新节点为最后节点.
example:
<body>
<span id="lovespan">熊掌我所欲也!</span>
</body>
<script type="text/javascript">
var lovespan=document.getElementById("lovespan"); //获取id
var newspan=document.createElement("span");
var newspanref=document.body.insertBefore(newspan, lovespan);
newspanref.innerHTML="鱼与";
</script>
(三),DOM Element常用属性
1、childeNodes 返回所有子节点对象,
例如
<ul id="mylist">
<li>美国</li>
<li>意大利</li>
<li>加拿大</li>
</ul>
<script>
var msg="" ;
var mylist=document.getElementById("mylist")
for (i=0; i<mylist.childNodes.length; i++){
var li=mylist.childNodes[i];
msg+=li.innerText;
}
alert (msg);
</script>
2,innerHTML
这是一个标准,但它并不书DOM
例如:
<div id="bbb"><span id="aaa">我拉</span></div>
<input type=button value="点击看看">
<script language="javascript">
function change()
{
document.getElementById("aaa").innerHTML= "修改修改";
}
</script>
3,style
这是一个极其重要的属性,可以获取并修改每个单独的样式.
例如:document.getElementByTagName("body")[0].style.backgroundColor="#cccccc"
4、firstChild 返回第一个子节点
lastChild 返回最后一个子节点
parentNode 返回父节点的对象。
nextSibling 返回下一个兄弟节点的对象
previousSibling 返回前一个兄弟节点的对象
nodeName 返回节点的HTML标记名称,使用英文的大写字母,如P, FONT
5,click()
执行元素的一次点击,可以用于通过脚本来触发onClick函数
Python的平凡之路(15)的更多相关文章
- Python的平凡之路(8)
(本文是对平凡之路(7)的补充等) 一.动态导入模块 import importlib __import__('import_lib.metaclass') #这是解释器自己内部用的 #importl ...
- Python的平凡之路(16)
一.HTML+CSS补充 0.常用页面布局 <!DOCTYPE html> <html lang="en"><head> <meta ch ...
- Python的平凡之路(13)
一.Python的paramiko模块介绍 Python 的paramiko模块,该模块和SSH用于连接远程服务器并执行相关操作 SSH client 用于连接远程服务器并执行基本命令 基于用户名和密 ...
- Python的平凡之路(12)
一.数据库介绍 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据.我们也可以将数据存储在文件中,但 ...
- Python的平凡之路(11)
一. rabbitmq 1 进程Queue: 父进程与子进程进行交互,或者同属于同一父进程下多个子进程进行交互 2 队列通信: send1.py #!/usr/bin/env python#Au ...
- Python的平凡之路(9)
一.Paramiko模块练习 1. Paramiko模块介绍 Paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接 2 .SSHclie ...
- Python的平凡之路(5)
一.模块介绍 定义: 模块--用来从逻辑上组织python代码(变量,函数,类,逻辑:实现一个功能),本质就是.py结尾的python文件(文件名test.py,模块名test) 包—用来从逻辑上组织 ...
- Python的平凡之路(2)
一.标准库(sys & os): Python 的标准库(standard library) 是随着 Python 一起安装在你的电脑中的,是 Python 的一部分 (当然也有特殊情况. ...
- Python的平凡之路(20)
(提问复习为主) 一.Django请求的生命周期 武彦涛: 路由系统 -> 视图函数(获取模板+数据=>渲染) -> 字符串返回给用户 二.路由 ...
随机推荐
- VB用windows API激活子窗体
http://files.cnblogs.com/files/liuzhaoyzz/%E6%BF%80%E6%B4%BB%E5%AD%90%E7%AA%97%E4%BD%93.rar setforeg ...
- java.lang.ClassNotFoundException: org.springframework.web.filter.CharacterEncodingFilter
今天在用git merge 新代码后报了如下错误:java.lang.ClassNotFoundException: org.springframework.web.filter.CharacterE ...
- Html5浏览器缓存 sessionStorage 与 localStorage
一.sessionStorage: 浏览关闭会话结束就被清除:(不能跨页面) localStorage:永久保存: 二.使用 var storage = window.sessionStorage; ...
- cordova 下载更新
function UpdateForAndroid(downloadUrl) { $ionicLoading.show({ template: "已经下载:0%" }); var ...
- 关于紫光a5扫描仪的安装
同事需要扫描写东西,从别的机器上搬来紫光a5的扫描仪,不会安装,需要帮忙. 插上扫描仪,win7提示发现新硬件,开始自动安装驱动.等了一会儿,提示无法安装,看来得手工寻找驱动来安装了.上网搜索a5的驱 ...
- Win8开虚拟wifi ‘无法启动承载网络 组或资源的状态不是执行请求操作的正确状态“
第一步,首先我们点开开始按钮菜单,要右键以“管理员身份”打开CMD“命令提示符”并键入或者复制(粘贴)命令:netsh wlan show drivers 查看本机无线网卡是否支持此项Wifi热点共享 ...
- MVC MVP 和 MVVM的图示
一直对于这些什么MVC MVP 和 MVVM都是云里雾里的 完全分不清楚 感觉jq上也没怎么用过,理解也很片面,画几张图也许能够大体分清他们之间的区别. 1.MVC(Model-View-Contro ...
- 节约内存:Instagram的Redis实践(转)
一.问题: 数据库表数据量极大(千万条),要求让服务器更加快速地响应用户的需求. 二.解决方案: 1.通过高速服务器Cache缓存数据库数据 2.内存数据库 三.主流解Ca ...
- 【转】js插件zClip实现复制到剪贴板功能
相信这个功能大家平时上网经常能碰到,以前也没怎么留意怎么实现的,直到项目中需要. 网上一搜一大堆,单纯使用js方法也不是没有,但是由于各浏览器的安全机制不同,不是跨浏览器的.去看了几个常用的网站,都是 ...
- EntityFramework CodeFirst SQLServer转Oracle踩坑笔记
接着在Oracle中使用Entity Framework 6 CodeFirst这篇博文,正在将项目从SQLServer 2012转至Oracle 11g,目前为止遇到的问题在此记录下. SQL Se ...