在anguler项目中引用fullCalendar
<link href="/CSS/Fullcalendar.css" rel="stylesheet" /> <!--插件的样式-->
2.JS文件引用
<script src="fullcalendar/JS/fullcalendar.js"></script>
<script src="fullcalendar/JS/moment.min.js"></script>
<script src="fullcalendar/JS/myFullcalendar.js"></script>
<!--引用文件有先后顺序,框架的js要在初始化fullCalendar之前-->
3.创建DOM元素
<div id="calendar" class="lz-full-height"></div>
4.
$("#calendar").fullCalendar({
//右侧新建及设置按钮
customButtons: {
NewSchedule: {
text: "新建日程",
click: function () {
if ($scope.scheVar.typeList.length <= 0) {
opacityAlert("请新建分类日程!", "glyphicon glyphicon-exclamation-sign");
return false;
}
//初始化确定按钮状态
$scope.scheVar.saveBtnStau = true;
//清空数据
$scope.scheFun.clearData();
//日程状态为新建
$scope.scheVar.scheState = "add";
//初始化时间 结束时间比开始时间多1小时
$scope.scheModel.starttime = new Date();
var str = new Date().getTime() + 3600000;
$scope.scheModel.endtime = new Date(str);
$scope.scheFun.showModal("modal_schedule_event.html");
}
},
//设置按钮
setSchedule: {
text: "设置",
click: function () {
$scope.scheFun.openSchSetOper();
}
},
},
//头部显示的按钮
header: {
//日 周 月 列表 今天
left: 'agendaDay,agendaWeek,month,listMonth today',
center: 'prev title next',
right: 'NewSchedule setSchedule'
},
buttonText: { today: '今天', month: '月', week: '周', day: '日', listMonth: "列表" },
defaultView: "agendaDay",//进入组件默认渲染的视图为天,默认为month
firstDay: 1, //视图从每周几开始,默认0为周日,1为周1,2为周2,依此类推
monthNames: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"],
monthNamesShort: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"],
dayNames: ["周日", "周一", "周二", "周三", "周四", "周五", "周六"],
dayNamesShort: ["周日", "周一", "周二", "周三", "周四", "周五", "周六"],//设置周简称
allDayDefault: false,
allDaySlot: true,//视图在周视图、日视图顶部显示“全天”信息,默认true显示全天
allDayText: "全天",//自定义全天视图的名称
slotLabelFormat: "H:mm",//设置日历y轴上显示的时间文本格式。
fixedWeekCount: false, //月视图下,显示6周(不够的显示下个月的)true;默认true
nowIndicator: true,//周/日视图中显示今天当前时间点(以红线标记),默认false不显示
timeFormat: "HH:mm",//设置的是添加的具体的日程上显示的时间
slotEventOverlap: true, //相同时间段的多个日程视觉上是否允许重叠,默认true允许
noEventsMessage: "暂无数据", //listview视图下,无数据时显示提示'
weekNumbers: false,//是否在视图左边显示这是第多少周,默认false
businessHours: {},//设置哪些时间段重点标记颜色
weekNumberTitle: "周",//周的国际化,默认为"W"
height: 1000,//组件高度,默认aspectRatio即纵横比;parent父容器大小;auto自动不带滚动条;支持数字和函数返回像素;支持$('#calendar').fullCalendar('option', 'height', 700);
contentHeight: 800, //组件中的内容高度,默认aspectRatio即纵横比;auto自动不带滚动条;支持数字和函数返回像素;支持$('#calendar').fullCalendar('option', 'contentHeight', 700);
aspectRatio: 2.0, //宽度:高度 比例,默认1.35,可自定义
views: {//月 周 日 日期显示格式
month: {
titleFormat: "YYYY年M月D日",
columnFormat: "dddd",
},
week: {
titleFormat: "YYYY年M月D日",
columnFormat: "dddd M/D"
},
day: {
titleFormat: "YYYY年M月D日 dddd",
columnFormat: "M/D dddd"
}
},
//在视图被渲染时触发(切换视图也触发) 参数view为视图对象,参数element为Jquery的视图Dom
viewRender: function (view, element, event) {
//设置视图标题
if ($("#calendar h2")[0]) {
$("#calendar h2")[0].innerHTML = view.title;
}
$scope.scheVar.viewType = view.type;//当前视图所在类型
//用于查询 哪一天(获取到当前的视图时间做处理)
$scope.scheVar.queryschlist.stime = "";// 开始日期
$scope.scheVar.queryschlist.etime = "";// 结束日期
//查询日/今天
if ($scope.scheVar.viewType == "agendaDay" || $scope.scheVar.viewType == "today") {
var str = view.title.match(/\d{4}.\d{1,2}.\d{1,2}/mg).toString();
$scope.scheVar.queryschlist.stime = str.replace(/[^0-9]/mg, '-');
$scope.scheVar.queryschlist.etime = $scope.scheVar.queryschlist.stime;
} else {//周 月 列表
//组织开始及结束日期赋值
var strarr = view.title.split(""), str = "";
for (var i = 0; i < strarr.length; i++) {
var re = /^[0-9]+.?[0-9]*$/;
if (strarr[i] != " ") {
if (!re.test(strarr[i])) {
if (strarr[i] == "–") {
strarr[i] = ",";
} else {
strarr[i] = "-";
}
}
if (i != strarr.length - 1) {
str += strarr[i];
}
}
}
var arrindex = str.indexOf(",");
$scope.scheVar.queryschlist.stime = str.substr(0, arrindex);
$scope.scheVar.queryschlist.etime = str.substr(arrindex + 1, strarr.length - 1 - arrindex);
//var etimestr = new Date($scope.scheVar.queryschlist.stime),
var etimestr = $scope.scheFun.ieFormatDate($scope.scheVar.queryschlist.stime);
eyearstr = etimestr.getFullYear();
if ($scope.scheVar.queryschlist.etime.length < 3) {
var emonstr = etimestr.getMonth() + 1;
$scope.scheVar.queryschlist.etime = eyearstr + "-" + emonstr + "-" + $scope.scheVar.queryschlist.etime;
} else {
$scope.scheVar.queryschlist.etime = eyearstr + "-" + $scope.scheVar.queryschlist.etime;
}
}
//所有的视图在第一次点击时自动调用events,第二次点击已渲染过的视图不会调用了,这里我们自己去调用刷新
if ($scope.scheVar.viewTypeList.indexOf($scope.scheVar.viewType) > 0) {
$('#calendar').fullCalendar('refetchEvents');
}
//已经点过的类型
if ($scope.scheVar.viewTypeList.indexOf($scope.scheVar.viewType) < 0) {
$scope.scheVar.viewTypeList.push($scope.scheVar.viewType);
} //重新渲染页面新增的视图
if ($scope.scheVar.daylist.length > 0) {
$("#calendar").fullCalendar('removeEventSource', $scope.scheVar.daylist);
}
},
//类似viewRender,在视图被销毁时触发
//viewDestroy : function(view, element){}, //日期格式Render钩子函数
dayRender: function (date, cell) {
},
//浏览器窗体变化时触发
windowResize: function (arguments) {
//计算内容的高度,控制滚动
var viewheigth = $("#main-viewport").height();
$('#calendar').fullCalendar('option', 'contentHeight', viewheigth - 70);
}, slotDuration: "00:30:00", //一格时间槽代表多长时间,默认00:30:00(30分钟)
slotLabelInterval: "01:00:00", //日期视图左边那一列多长间隔显示一条日期文字(默认跟着slotDuration走的,可自定义)
snapDuration: "01:00:00",//其实就是动态创建一个日程时,默认创建多长的时间块
//scrollTime : "06:00:00", //多远开始往下滚动,默认6小时,这个没看懂
//minTime : "02:00:00", //周/日视图左边时间线显示的最小日期,默认00:00:00
//maxTime : "08:00:00", //周/日视图左边时间线显示的最大日期,默认24:00:00
slotEventOverlap: false, //相同时间段的多个日程视觉上是否允许重叠,默认true允许
listDayFormat: "M月D日 dddd",//listview视图下,每天的分割区,[左边]的标题显示日期格式,false表示无标题
listDayAltFormat: false, //listview视图下,每天的分割区,[右边]的标题显示日期格式,false表示无标题
defaultDate: $filter("date")(new Date(), "yyyy-MM-dd"),//默认显示那一天的日期视图
//locale : "zh-cn", //国际化,前提引用lang-all.js,参见官方demo-->languages.html
//columnFormat : "", //顶部日期显示格式'ddd' like 'Mon','ddd M/D' like 'Mon 9/7','dddd' like 'Monday'
//displayEventTime: false, //每一个日程块中是否显示时间,默认true显示
//displayEventEnd: true, //是否显示日程块中的“结束时间”,默认true,如果false则只显示开始时间
eventLimit: true, //数据条数太多时,限制各自里显示的数据条数(多余的以“+2more”格式显示),默认false不限制,支持输入数字设定固定的显示条数
eventLimitText: "更多", //当一块区域内容太多以"+2 more"格式显示时,这个more的名称自定义(应该与eventLimit: true一并用)
dayPopoverFormat: "YYYY年M月D日", //点开"+2 more"弹出的小窗口标题,与eventLimitClick可以结合用
// eventLimitClick:"day",接eventLimit属性,多余的内容点击事件,默认有一套弹窗格式,支持跳转到不同视图
navLinks: true, // “xx周”是否可以被点击,默认false,如果为true则周视图“周几”被点击之后进入日视图。
//依赖navLinks : true , 点击顶部“日”时触发
//navLinkDayClick: function(date, jsEvent) { },
//依赖navLinks : true , 点击顶部“周”时触发
//navLinkWeekClick: function(weekStart, jsEvent) { }, //查询并渲染列表
events: function (start, end, timezone, callback) {
var event = [];
if ($scope.scheVar.visiblerange) {//有权限
$scope.scheFun.querySchList(function (data) {
if (data && data.length > 0) {
for (var i = 0; i < data.length; i++) {
var eventobj = data[i];
eventobj._id = data[i].id;
eventobj.id = new Date(data[i].SrModel.starttime).getTime();//时间戳做为唯一标识(编辑单个)
//全天结束时间+1天
if (eventobj.allDay) {
var endstr = new Date(eventobj.end).getTime() + 86400000;
eventobj.end = new Date(endstr);
}
var typelist = $scope.scheVar.typeList;
//查询的是别人的数据
if (!$scope.scheVar.queryschlist.ismeuid) {
typelist = $scope.scheVar.othertypeList;
}
//匹配类型颜色
for (var j = 0; j < typelist.length; j++) {
if (data[i].SrModel.scid == typelist[j].scid) {
eventobj.className = typelist[j].sccolor;
eventobj.SrModel.scname = typelist[j].scname;
event.push(eventobj);
break;
}
}
}
} else {
var list = $("#calendar").fullCalendar('clientEvents');
$("#calendar").fullCalendar('removeEventSource', list);
}
if ($scope.scheVar.schList.length > 0) {
$("#calendar").fullCalendar('removeEventSource', $scope.scheVar.schList);
}
$scope.scheVar.schList = event;
callback(event);
});
} else {
var list = $("#calendar").fullCalendar('clientEvents');
$("#calendar").fullCalendar('removeEventSource', list);
callback(event);
}
}, //当Event对象开始渲染时触发
eventRender: function (event, element, view) { }, //列表 单击时触发 编辑
eventClick: function (calEvent, jsEvent, view) {
if ($scope.scheVar.signPropModel.isShowEdit) {
$scope.calEvent = calEvent;
if (calEvent.SrModel.srid) {
//详情
$scope.scheFun.editSche();
}
}
}, dayClick: function (date, allDay, jsEvent, view) {//空白的日期区,单击时触发
//默认时间赋值
var _this = this;
$scope.scheFun.clearData();
$scope.scheVar.scheState = "add";
var starttime = $.fullCalendar.formatDate(date, "YYYY-MM-DD"), endtime = starttime;
var date = new Date(), Hours = date.getHours(), Min = date.getMinutes();
starttime += " " + Hours + ":" + Min;
endtime += " " + Hours + ":" + Min;
var str = $scope.scheFun.ieFormatDate(endtime);
//初始化时间 结束时间比开始时间多1小时
endtime = new Date(str.getTime() + 3600000);
$scope.scheModel.endtime = $filter("date")(endtime, "yyyy-MM-dd H:mm");
$scope.scheModel.starttime = $filter("date")(starttime, "yyyy-MM-dd H:mm");
//新建日程弹窗
$scope.scheFun.showModal("modal_schedule_event.html");
}, //鼠标在日程区块上时触发
eventMouseover: function (calEvent, jsEvent, view) {
//显示小弹窗
var startday = $filter("date")(calEvent.SrModel.starttime, "MM月dd日 H:mm");
var endday = $filter("date")(calEvent.SrModel.endtime, "MM月dd日 H:mm");
$scope.$apply(function () {
$scope.scheVar.signPropModel.title = calEvent.title;
$scope.scheVar.signPropModel.des = startday + " - " + endday;//开始及结束时间
$scope.scheVar.signPropModel.iconColor = calEvent.className;
if (calEvent.className instanceof Array) {
$scope.scheVar.signPropModel.iconColor = calEvent.className[0];//分类颜色
}
$scope.scheVar.signPropModel.scname = calEvent.SrModel.scname;//分类名称
$scope.scheVar.signDetaileModel = calEvent.SrModel;//详情model
$scope.calEvent = calEvent;
//自己的日程可编辑
$scope.scheVar.signPropModel.isShowEdit = false;
if ($scope.scheVar.queryschlist.uid == app.session.user.uid) {
$scope.scheVar.signPropModel.isShowEdit = true;
}
var menuobj = $("#showmouseover");
if (menuobj) {
var leftv = jsEvent.clientX, topv = jsEvent.clientY,
wheight = $(".main-viewport").height(),
wwidth = $(".main-viewport").width();
if (jsEvent.clientY + 276 > wheight) {
topv = jsEvent.clientY - 100;
}
if (113 + jsEvent.clientX > wwidth) {
leftv = wwidth - 113;
if (jsEvent.clientY + 276 > wheight) {
topv = jsEvent.clientY - 113;
}
}
}
$("#showmouseover").css({ 'left': leftv, 'top': topv });
$scope.scheFun.toggleClass("#showmouseover", "show");
});
}, //鼠标从日程区块离开时触发
eventMouseout: function (calEvent, jsEvent, view) {
$scope.scheFun.toggleClass("#showmouseover", "hidden");
},
selectable: false,//允许用户可以长按鼠标选择多个区域(比如月视图,可以选中多天;日视图可以选中多个小时),默认false不能选择多区域的
selectHelper: true,//接selectable,周/日视图在选择时是否预先画出“日程区块”的样式出来
unselectAuto: true, //是否点击页面上的其他地方会导致当前的选择被清除,默认true
unselectCancel: "", //一种方法来指定元素,会忽略unselectauto选项,默认''
selectOverlap: true, //确定用户是否被允许选择被事件占用的时间段,默认true可占用时间段
//selectConstraint : , //限制用户选择指定时间段的日程数据:an event ID, "businessHours", object
selectAllow: function (selectInfo) { //精确的编程控制用户可以选择的地方,返回true则表示可选择,false表示不可选择 }, select: function (start, end, jsEvent, view) { //点击空白区域/选择区域内容触发 },
unselect: function (view, jsEvent) {//选择操作取消时触发 },
/**Event Object配置start */
// allDayDefault : null, //是否默认将日程全部显示在“全天”里面(boolean or null),默认为undefined,即根据event时间值智能判断,这个属性太强悍,不敢用
//startParam:"start", //Event Object中定义[开始时间]的变量,默认是start,可自定义变量名以防冲突
//endParam:"end", //Event Object中定义[结束时间]的变量,默认是end,可自定义变量名以防冲突
//timezoneParam : "timezone", //Event Object中定义[时区]的变量,默认是本地时区,可自定义变量名以防冲突,可更改时区如( "America/Chicago" or "UTC")
lazyFetching: true, //是否启用懒加载技术--即只取当前条件下的视图数据,其它数据在切换时触发,默认true只取当前视图的,false是取全视图的
defaultTimedEventDuration: "01:00:00", //在Event Object中如果没有end参数时使用,如start=7:00pm,则该日程对象时间范围就是7:00~9:00
defaultAllDayEventDuration: { days: 1 }, //默认1天是多长,(有的是采用工作时间模式,所以支持自定义)
// forceEventDuration : false, //默认false
// eventDataTransform : function(eventData){return [events...]}, //当从第三方取数不规则时(如下面的JSON或google),可通过此钩子函数进行数据整理,转换为fullcalendar识别的event object
loading: function (isLoading, view) { //视图数据加载中、加载完成触发
$scope.scheVar.loadingCalendar = isLoading;
},
// nextDayThreshold : "09:00:00", //当一个事件的结束时间跨越到另一天,最短的时间,它必须为它的渲染,如果它在这一天。
eventOrder: "title",//多个相同的日程数据排序方式,String / Array / Function, 默认值: "title" eventAfterRender: function (event, element, view) {
var _this = this;
var iconColor = event.className;
if (event.className instanceof Array) {
iconColor = event.className[0];//分类颜色
}
//数据增加html结构
if (element[0].className.indexOf("fc-time-grid-event") != -1 ||
element[0].className.indexOf("fc-day-grid-event") != -1) {
if (element.has('.fc-time-grid-event').length == 0) {
element.prepend('<div class=' + '"' + "fc-event-bg " + iconColor + '"' + '></div>');
}
}
},
//当Event对象结束渲染时触发
// eventAfterAllRender: function (view) { console.log("eventAfterAllRender();"); }, //当所有Event对象渲染完成时触发
// eventDestroy : function( event, element, view ) { } //一个Event DOM销毁时触发 /**Event Object配置end */ /**Event Rendering配置(一些样式等配置) start*/
// eventColor: '#378006', //不解释,所有的日程区块生效,如要对指定数据源生成参见EventSource,如要对指定Event生效,参见EventObject
// eventBackgroundColor:"", //同上,不解释
// eventBorderColor:"", //同上,不解释
// eventTextColor:"" //同上,不解释 /**Event Rendering配置 end*/ editable: $scope.scheVar.iseditable,//支持Event日程拖动修改,默认false
eventStartEditable: true, //Event日程开始时间可以改变,默认true,如果是false其实就是指日程块不能随意拖动,只能上下拉伸改变他的endTime
eventDurationEditable: false, //Event日程的开始结束时间距离是否可以改变,默认true,如果是false则表示开始结束时间范围不能拉伸,只能拖拽
// dragRevertDuration : 500, //拖拽取消恢复花费时间,单位毫秒,这个就用默认的差不多了
dragOpacity: 0.5, //拖拽时不透明度,0.0~1.0之间,数字越小越透明
dragScroll: true, //是否在拖拽时自动移动容器,默认true
eventOverlap: true, //拖拽时是否重叠
eventConstraint: { //限制拖拽拖放的位置(即限制有些地方拖不进去):an event ID, "businessHours", object
start: '10:00', // a start time (10am in this example)
end: '18:00', // an end time (6pm in this example)
dow: [1, 2, 3, 4] // days of week. an array of zero-based day of week integers (0=Sunday) (Monday-Thursday in this example)
},
longPressDelay: 1000, //面向可touch设备(如移动设备),长按多少毫秒即可拖动,默认1000毫秒(1S)
eventDragStart: function (event, jsEvent, ui, view) {//日程开始拖拽时触发 },
eventDragStop: function (event, jsEvent, ui, view) {//日程拖拽停止时触发 }, //日程拖拽停止并且已经拖拽到其它位置了
eventDrop: function (event, delta, revertFunc, jsEvent, ui, view) {
if ($scope.scheVar.signPropModel.isShowEdit) {
var stimestr = (new Date(event.start._i)).getTime();
var etimestr = (new Date(event.end._i)).getTime();
if ($scope.scheVar.viewType == "month") {//月
var datestr = delta._days * 86400000;
stimestr += datestr;
etimestr += datestr;
} else {
stimestr += delta._milliseconds;
etimestr += delta._milliseconds;
} $scope.scheModel = event.SrModel;
$scope.scheModel.starttime = $filter("date")(new Date(stimestr), "yyyy-MM-dd H:mm");
$scope.scheModel.endtime = $filter("date")(new Date(etimestr), "yyyy-MM-dd H:mm");
$scope.scheVar.scheState = "drop";
$scope.scheFun.saveAPI("false");
} else {
//view.options.editable = false;
// $scope.scheVar.iseditable = false;
}
},
eventResizeStart: function (event, jsEvent, ui, view) { //日程大小调整开始时触发 },
eventResizeStop: function (event, jsEvent, ui, view) { //日程大小调整停止时触发 },
eventResize: function (event, delta, revertFunc, jsEvent, ui, view) { //日程大小调整完成并已经执行更新时触发 },
});
在anguler项目中引用fullCalendar的更多相关文章
- ios项目中引用其他项目复习
ios项目中引用其他开源项目,今天再次复习了,记个备注. 1. 将开源项目的.xcodeproj拖入项目frameworks 2. Build Phases下 Links Binary With Li ...
- ASP.NET项目中引用全局dll
在ASP.NET项目中,有些dll是全局dll,也就是说,没有放在单个项目的引用中.它们一般存放在如下目录C:\Windows\assembly中 这个时候,我们需要在单个项目中引用他们,应该如何做呢 ...
- ASP.NET CORE MVC 2.0 项目中引用第三方DLL报错的解决办法 - InvalidOperationException: Cannot find compilation library location for package
目前在学习ASP.NET CORE MVC中,今天看到微软在ASP.NET CORE MVC 2.0中又恢复了允许开发人员引用第三方DLL程序集的功能,感到甚是高兴!于是我急忙写了个Demo想试试,我 ...
- 擦他丫的,今天在Django项目中引用静态文件jQuery.js 就是引入报错,终于找到原因了!
擦 ,今天在Django项目中引用静态文件jQuery.js 就是引入报错,终于找到原因了! 问题在于我使用的谷歌浏览器,默认使用了缓存,导致每次访问同一个url时,都返回的是缓存里面的东西.通过谷歌 ...
- Android Studio 在项目中引用第三方jar包
在Android Studio项目中引用第三方jar包的方法: 步骤: 1.在build.gradle文件中添加如下代码: 备注:要添加在Android作用域下 sourceSets { main { ...
- springboot项目中引用其他springboot项目jar
1. 剔除要引入的springboot项目中不需要的文件:如Application和ApplicationTests等 2.打包 不能使用springboot项目自带的打包插件进行打包: 3.打包 4 ...
- 在项目中引用android.support.v7
在Android开发中,新建的项目可能因为缺少对sopport工程的引用而报错,可以这样解决. 1.项目右键 --> import --> Android --> Existing ...
- 在vue项目中引用element-ui时 让el-input 获取焦点的方法
在制作项目的时候遇到一个需求,点击一个按钮弹出一个input输入框,并让输入框获得焦点,项目中引用了ElementUI 在网上查找了很多方法,但是在实际使用中发现了一个问题无论是使用$ref获取inp ...
- git 在 A 项目中引用 B 项目
git 在 A 项目中引用 B 项目 场景: 需要在项目calcDLL(http://XXX/XXXA.git) 中 引用 项目libindex(http://XXX/XXXB.git). 解决方 ...
随机推荐
- windows cmd.exe 将程序 stdout 输出到文件中
问题背景:通过 cmd.exe 调用程序,会有一些输出信息,在 cmd 中不方便查阅,所以需要导入文件中. 例如 方法: 可以在其路径下看到
- LevelDB源码分析-Open
Open LevelDB的初始化主要由Open函数实现: Status DB::Open(const Options &options, const std::string &dbna ...
- 恢复oracle 11g 的System及sys用户的密码
进入E:\app\orcl\product\11.2.0\dbhome_1\database目录下找到PWDorcl.ora备份后删除文件,orcl是数据库的实例名 以管理员身份打开cmd,执行 or ...
- Android导出数据库文件
由于Android系统权限问题,直接用Android Studio 的Device File Explorer无法查看墨人生成的*.db文件,不过可以通过adb命令获取到: adb pull /dat ...
- File和FileStream的区别
File和FileStream的区别直观点:File是一个静态类:FileStream是一个非静态类.File:是一个文件的类,对文件进行操作.其内部封装了对文件的各种操作(MSDN:提供用于创建.复 ...
- ftp的主动模式和被动模式的配置和区别
原文链接: https://www.cnblogs.com/lnlvinso/p/8947369.html ftp模式分为主动模式(active mode)和被动模式(passive mode),ft ...
- linux卸载erlang
rpm -qa | grep erlang | xargs rpm -e --nodeps
- jmeter入门简介(一)
简介 Apache JMeter是100%纯JAVA桌面应用程序,被设计为用于测试CS/BS的软件.它可以用来测试静态和动态资源的性能,可用于模拟大量负载来测试一台服务器,网络或者对象的健壮性或者分析 ...
- Linux下Samba的安装和使用
一. samba的安装: sudo apt-get insall samba sudo apt-get install smbfs 二. 创建共享目录: mkdir /home/phinecos/sh ...
- I2C与SMBus
关于I2C与SMBus,许多人很少去谈论与了解两者的细节差异,包括很多国外的简报,文章也经常将两者混写.交杂描述.交替运用. 确实,在一般运用下,I2C Bus与SMBus没有太大的差别,从实际接线上 ...