最新文章
Oren Eini(又名Ayende Rahien)建议开发者尽量避免数据库的软删除操作,读者可能因此认为硬删除是合理的选择。作为对Ayende文章的回应,Udi Dahan强烈建议完全避免数据删除。所谓软删除主张在表中增加一个IsDeleted列以保持数据完整。如果某一行设置了IsDeleted标志列,那么这一行就被认为是已删除的。Ayende觉得这种方法“简单、容易理解、容易实现、容易沟通”,但“往往是错的”。问题在于: 删除一行或一个实体几乎总不是简单的事件。它不仅影响模型中的数据,还会影响模型的外观。所以我们才要有外键去确保不会出现“订单行”没有对应的父“订单”的
像素鱼丸 2016-09-26 MySQL 1073
GET在浏览器回退时是无害的,而POST会再次提交请求。GET产生的URL地址可以被Bookmark,而POST不可以。GET请求会被浏览器主动cache,而POST不会,除非手动设置。GET请求只能进行url编码,而POST支持多种编码方式。GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。GET请求在URL中传送的参数是有长度限制的,而POST么有。对参数的数据类型,GET只接受ASCII字符,而POST没有限制。GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息。GET参数通过URL传递,POST放在Request body中
像素鱼丸 2016-09-23 JavaScript 1012
在网页中调用html播放器, 结果还是有些视频虽然是mp4的,但可能因为太大(有3G),所以无法播放, 解决办法是使用vlc插件,Chrome以前,默认不启用这种插件, chrome v45以后已经无法使用该插件了, 在ie和火狐上, 还可以使用。 embed type="application/x-vlc-plugin" pluginspage="http://www.videolan.org" toolbar="true" id="vlc" /embed script function getQueryString(name) { var reg = new RegExp("(
像素鱼丸 2016-09-22 开发工具 1725
方法一:正则分析法 function getQueryString(name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i"); var r = window.location.search.substr(1).match(reg); if (r != null) return unescape(r[2]); return null; }调用方法: alert(GetQueryString("参数名1"
像素鱼丸 2016-09-20 JavaScript 936
这是因为删除操作后在数据文件中留下碎片所致。DELETE只是将数据标识位删除,并没有整理数据文件,当插入新数据后,会再次使用这些被置为删除标识的记录空间。另外实际操作过程中还发现这个问题还存在两种情况。(1)当DELETE后面跟条件的时候,则就会出现这个问题。如:delete from table_name where 条件删除数据后,数据表占用的空间大小不会变。(2)不跟条件直接delete的时候。如:delete from table_name清除了数据,同时数据表的空间也会变为0。这就存在了一个问题,在网站的实际运行过程中。经常会存在这样的附带条件删除数据的操作行为。天长日久,这不就在数
像素鱼丸 2016-09-19 MySQL 1007
作者:phodal链接:https://zhuanlan.zhihu.com/p/20548041来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。Web本身就是跨平台的,这意味着这中间存在着无限的可能性。我是一名Web Developer,对于我来能用Web开发的事情就用Web来完成就好了——不需要编译,不需要等它编译完。我想到哪我就可以写到哪,我改到哪我就可以发生哪发生了变化。最近我在写Growth——一个帮助开发人员成长的应用,在近一个月的业余时间里,完成了这个应用的:移动应用版:Android、Windows Phone、iOS(等账号和上线)Web版桌面版
像素鱼丸 2016-09-17 CSS 1089
(1)Android Studio菜单Build- Generate Signed APK (2)弹出窗口 (3)创建密钥库及密钥,创建后会自动选择刚创建的密钥库和密钥(已拥有密钥库跳过) 点击“Create new...”按钮创建密钥库 Key store path:密钥库文件的地址 Password/Confirm:密钥库的密码 Key: Alias:密钥名称 Password/Confirm:密钥密码 Validity(years)
像素鱼丸 2016-09-12 开发工具 1149
安卓项目结构图 Android 应用程序组件 应用程序组件是一个Android应用程序的基本构建块。这些组件由应用清单文件松耦合的组织。AndroidManifest.xml描述了应用程序的每个组件,以及他们如何交互。 以下是可以在Android应用程序中使用的四个主要组件: Activities 一个活动标识一个具有用户界面的单一屏幕。举个例子,一个邮件应用程序可以包含一个活动用于显示新邮件列表,另一个活动用来编写邮件,再一个活动来阅读邮件。当应用程序拥有多于一个活动,其中的一个会被标记为当应用程序启动的时候显示。 public class MainActivit
像素鱼丸 2016-09-12 开发工具 1078
Git 的工作流程如下:克隆 Git 资源作为工作目录。在克隆的资源上添加或修改文件。如果其他人修改了,你可以更新资源。在提交前查看修改。提交修改。在修改完成后,如果发现错误,可以撤回提交并再次修改并提交。下图展示了 Git 的工作流程:
像素鱼丸 2016-09-11 开发工具 1278
今天在做前台页面的时候,应用了两个网上找到的JS效果,其中一个效果不起作用,FF下也没有报错,运用排除法发现是window.onload = function(){...}重复造成冲突,Google了一下,遇到这个问题的人还不少,通过查找资料和自己的实践验证,提供思路如下:比如在一个页面中有两个JavaScript 分别都用到了window.onload一个是:window.onload=function(a){...},另一个是:window.onload=function(b){...}这样就造成了一个JavaScript 运行不了(一般是前一个)。写成这样就可以了window.onloa
像素鱼丸 2016-09-11 JavaScript 1029
下面的代码使用了两种方式删除数组的元素,第一种定义一个单独的函数,第二种为Array对象定义了一个removeByValue的方法,调用非常简单定义函数removeByValue进行元素删除function removeByValue(arr, val) { for(var i=0; i arr.length; i++) { if(arr[i] == val) { arr.splice(i, 1); break; } } } var somearray = ["mon", "tue"
像素鱼丸 2016-09-08 JavaScript 962
JavaScript的Array可以包含任意数据类型,并通过索引来访问每个元素。要取得Array的长度,直接访问length属性:var arr = [1, 2, 3.14, 'Hello', null, true]; arr.length; // 6请注意,直接给Array的length赋一个新的值会导致Array大小的变化:var arr = [1, 2, 3]; arr.length; // 3 arr.length = 6; arr; // arr变为[1, 2, 3, undefined, undefined, undefined] arr.le
像素鱼丸 2016-09-08 JavaScript 941
要计算1+2+3,我们可以直接写表达式:1 + 2 + 3; // 6要计算1+2+3+...+10,勉强也能写出来。但是,要计算1+2+3+...+10000,直接写表达式就不可能了。为了让计算机能计算成千上万次的重复运算,我们就需要循环语句。JavaScript的循环有两种,一种是for循环,通过初始条件、结束条件和递增条件来循环执行语句块:var x = 0; var i; for (i=1; i =10000; i++) { x = x + i; } x; // 50005000让我们来分析一下for循环的控制条件:i=1 这是初始条件,将变量i置为1;i =
像素鱼丸 2016-09-08 JavaScript 994
@Font-face目前浏览器的兼容性:Webkit/Safari(3.2+) TrueType/OpenType TT (.ttf) 、OpenType PS (.otf);Opera (10+) TrueType/OpenType TT (.ttf) 、 OpenType PS (.otf) 、 SVG (.svg);Internet Explorer 自ie4开始,支持EOT格式的字体文件;ie9支持WOFF;Firefox(3.5+) TrueType/OpenType TT (.ttf)、 OpenType PS (.otf)、 WOFF (since Firefox 3.6)Goo
像素鱼丸 2016-09-08 CSS 1076
宋体 SimSun黑体 SimHei微软雅黑 Microsoft YaHei微软正黑体 Microsoft JhengHei新宋体 NSimSun新细明体 PMingLiU细明体 MingLiU标楷体 DFKai-SB仿宋 FangSong楷体 KaiTi仿宋_GB2312 FangSong_GB2312楷体_GB2312 KaiTi_GB2312宋体:SimSuncss中中文字体(font-family)的英文名称Mac OS的一些:华文细黑:STHeiti Light [STXihei]华文黑体:STHeiti华文楷体:STKaiti华文宋体:STSong华文仿宋:STFangsong儷黑
像素鱼丸 2016-09-08 CSS 1004
方法一: div id="ttt" style="height: 100px; border: 1px solid #c0c0c0;" onmousedown="testdown();" onmouseup="testup()" test /div script type="text/javascript" var timer; function testdown() { timer = setTimeout(function(){
像素鱼丸 2016-09-07 JavaScript 1373
结论:对于数字、字符串等是将它们的值传递给了函数参数,函数参数的改变不会影响函数外部的变量。对于数组和对象等是将对象(数组)的变量的值传递给了函数参数,这个变量保存的指向对象(数组)的地址。当函数改变这个地址指向的对象(数组)的内容时,同时也改变了函数外部变量指向的对象(数组)的内容;当函数改变的是变量的地址时,实际就与函数外部的变量失去了联系,变成了完全不同的对象了,不会对函数外部对象造成改变。很多人认为 JS 中参数有两种传递方式:数字、字符串等按值传递;数组、对象等按地址(引用)传递。其实都是一种值传递。下面的例子很好的说明了这一点。var v1 = [] var v2 = {};
像素鱼丸 2016-09-07 JavaScript 930
让我们先考虑下面这情况:var a = [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ]; var b = [ "foo", "bar", "baz", "bam", "bun", "fun" ];很显然最简单的结合结果应该是:[ 1, 2, 3, 4, 5, 6, 7, 8, 9, "foo", "bar", "baz", "bam" "bun&qu
像素鱼丸 2016-09-07 JavaScript 1015
HTTP 协议是互联网的基础协议,也是网页开发的必备知识,最新版本 HTTP/2 更是让它成为技术热点。本文介绍 HTTP 协议的历史演变和设计思路。一、HTTP/0.9HTTP 是基于 TCP/IP 协议的应用层协议。它不涉及数据包(packet)传输,主要规定了客户端和服务器之间的通信格式,默认使用80端口。最早版本是1991年发布的0.9版。该版本极其简单,只有一个命令GET。GET /index.html 上面命令表示,TCP 连接(connection)建立后,客户端向服务器请求(request)网页index.html。协议规定,服务器只能回应HTML格式的字符串,不能回应别的格
像素鱼丸 2016-09-06 开发技巧 1104
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它基于JavaScript的对象字面量语法,但是独立于语言,许多编程语言都有解析JSON数据的能力。JSON主要被用于在客户端和服务端之间传递数据,比如在Web应用中Ajax请求的响应数据常常是JSON格式。 基本概念 JSON有两种结构:对象和数组。 对象:在JSON中,一个对象以{}括起来,包含一系列键值对。每个键值对之间用逗号分隔,键必须是字符串且用双引号包围,值可以是字符串、数字、布尔值、数组、对象或者null。 示例: { "name":
像素鱼丸 2016-09-06 JavaScript 1354
随机推荐
Express 使用 method-override 处理动词覆盖
Page Visibility API
JavaScript screen对象
MySQL 数据库中货币单位如何存储
Windows 服务命令 sc
JavaScript Global 对象
CSS Outline 属性详解
JavaScript location对象