1、基本语法:
首先,fullcalendar和JQUERY一样,以面向对象的方式来组织代码。当然,这里的面向对象仅仅是指可以把整个fullcalendar理解为一个类,这个类里包括有很多的属性、方法、委托(函数回调)作为成员变量。通过为这些成员变量赋值,即可实例化出一个符合自己需求的fullcalendar实例出来,即最终在浏览器里渲染出的日历。换句话说,我们所做的绝大多数工作就是按照fullcalendar的语法约定去配置出一个符合我们需求的fullcalendar实例。除非对于极少的特殊需求,fullcalendar向我们提供的接口不足以满足,才会去修改fullcalendar本身的js文件。
作为一种JQUERY插件,可以把fullcalendar理解为向 jquery对象集里添加了一个日历相关的对象,这个对象里相关方法、属性、的调用方式,即为fullcalendar的基本语法。整个语法分为两种:
第一种和日历本身无关,仅仅是利用fullcalendar提供的方法来进行字符串和日期间的转换,形式如下:
$.fullCalendar.formatDate();
第二种则是与和配置fullcalendar实例相关的,这最终会影响到fullcalendar在浏览器里的渲染,形式如下$(‘#someId’) .fullCalendar(content);
$(‘#someId’)将得到一个jquery对象,其中someId为你希望渲染日历的元素id。重点是后面一部分.fullCalendar(content);
Content有三种形式:
①为属性赋值 {key:value,…}
$('#calendar').fullCalendar({
weekends: false // will hide Saturdays and Sundays
});
这里即得到一个fullcalendar实例,其中weekends属性为false,即月日历不会显示周末。
②方法调用'methodName','para'
$('#calendar').fullCalendar('next')
这里会调用fullcalendar实例的next方法,其结果是浏览器的日历向后翻一月(日)
③为方法回调赋值
$('#calendar').fullCalendar({
dayClick: function() { alert('a day has been clicked!'); }
});
这里是为日历控件的dayClick事件赋值为相应的匿名函数,其结果是日历的每日被点击时,会弹出对话框。
我想先有这样一种观念更便于后面的理解,需要渲染一个fullcalendar控件时,通常是直接在实例化一个fullcalendar时即完成它的绝大多数属性 和委托的赋值,如此即得到一个会被浏览器渲染成日历的fullcalendar对象(A),当这个对象已经被渲染后,如果需要动态的修改它的相关配置,可以通过$('#calendar').fullCalendar('option','aspectRatio', 1.8); 的形式去修改。
如果需要对象A发生某些变化,也可以调用A的某些方法,比如说翻页。
2、内容框架
整个fullcalendar由两部分组成
日历+事件
其中日历即为由js脚本在浏览器描绘出的日历控件,这一部分完全由js控制,和服务器无需相关联。
事件则是日历功能的扩展,可以把事件理解为一个个会议安排。这些会议安排通常是保存在服务器的,在每次页面加载时,fullcalendar得到会议安排的集合,然后按照其中的日期去把事件描绘到日历对应的地方。
3、知识点概要
余下详细的知识点均为fullcalendar官方文档的翻译和组合。每一部分均按照属性、方法、函数回调的顺序来组织。通常会有相关知识点的简介,对于比较复杂或者关键的点,会有相关联的代码作为事例。同样,这些事例也出之于fullcalendar官方文档。
以下是对这所有知识点的归纳和概览
日历部分:
视图:日历的不同的展现模式。当前共有5中视图
视图的通用配置:这一部分的配置通常可以对5中视图均有效。
视图对象:fullcalendar的视图Module
获取视图对象以及跳转到指定视图的方法
议程相关:即对议程视图模式下,相关细节的配置
日期相关:涉及到日历系统里日期的显示格式,日历加载的日期,以及获取相关日期或者日历改变日期的相关方法
时间和文本的自定义设置:涉及到自定义或者本地化的相关配置大多在这里完成
鼠标的相关事件捕获:比如鼠标单击到某个特殊地方(日历中的某一天等)等触发的方法在这里配置
选中元素的配置:这一部分是来配置当鼠标点击某一日历元素时,是否选中该元素以及与此相关的事件
事件部分如下:
事件Module包含的信息
事件的产生:包括事件源的管理和事件的管理
事件的描绘:把一个事件描绘到浏览器的整个过程包含在这里
拖拽事件:用鼠标拖拽以移动某个时间,这需要其他JQUERY ui插件的支持
从日历外拖拽事件到日历内以添加事件:对日历内拖拽事件的扩展
4、详细知识点
4.1、合法的视图
month - see example 月视图
basicWeek - see example 周视图(一周内事件和日期的集合)
basicDay - see example (一日内事件和日期的集合)
agendaWeek - see example (周日程表)
agendaDay - see example (日日程表)
4.2、视图的通用配置
header
头部显示的信息,分left , center, right三个部位
合法的属性值:title,prev,next,prevYear,nextYear,today, avaibleViewName
header: { left: 'title', center: 'prevYear,nextYear', right: 'prev,today,next,agendaDay,month' }
theme
当为true时,可以配合JQUERY-UI,配置日历的皮肤
buttonIcons:http://jqueryui.com/themeroller/
buttonIcons: { prev: 'circle-triangle-w', next: 'circle-triangle-e' }
注意去掉.ui-icon-
firstDay:每周开始的日期:0为周日
isRTL:是否从右至左组织日历
weekends:是否显示周末
weekMode:周的显示模式:
fixed:每月始终显示6周
liquid:周数不定,每周的高度可变,整个日历高度不变
variable:周数不定,每周的高度固定,整个日历的高度可变
height整个日历的高度(包括header和content)
contentHeight内容高度:
aspectRatio宽和高的比例
$('#calendar').fullCalendar('option','aspectRatio', 1.8); 可以动态设置
viewDisplay (callback)函数回调,每次view显示时均会调用
function( view ) { }
View是view对象
windowResize (callback)函数回调,每次窗口大小改变时调用,
viewDisplay
render (method)立刻显示view
destroy (method)释放calendar,包括相关数据
defaultView:日历初始化时的视图,默认为month
4.3、视图对象viewObject
name
可用的5个视图名之一
title
视图部分的title 2012.9.1
start
当天view开始的第一天
end
visStart
Visible Start Day
visEnd
在相关方法回调中均会有次对象
4.4、获取视图对象
.fullCalendar( 'getView' )
切换视图
.fullCalendar( 'changeView', viewName )
4.5、议程相关——控制日程相关的视图的显示信息
allDaySlot是否显示全天日程
allDayText显示的文字
axisFormat日期显示的格式
slotMinutes间隔时间
defaultEventMinutes默认的事件持续事件
firstHour在日程view里可见的起始时间,可通过滚动条滚动到在此时间之前的时间
minTime整日日程的起始时间
maxTime整日日程的结束时间
4.6、日期相关
year日历加载时的年份
month日历加载时的月份(从0开始)
date日历加载时在月份的天数(对周视图和日视图有效)
prev (method)日历跳转到前一天
next (method)日历跳转到后一天
prevYear (method)日历跳转到前一年
nextYear (method)日历跳转到后一年
today (method)日历跳转到当前日期
gotoDate (method)日历跳转到指定日期
incrementDate (method)日历向前(向后)跳转一段时间
getDate (method)获取日历的当前日期 Date类型
4.7、时间和文本的自定义
timeFormat每个事件默认显示的时间格式
columnFormat每个视图列名显示的格式、
{ month: 'ddd', // Mon
week: 'ddd M/d', // Mon9/7
day: 'dddd M/d' // Monday9/7 }
titleFormat每个视图里title显示的格式
{ month: 'MMMM yyyy', // September 2009
week: "MMM d[ yyyy]{'—'[ MMM] d yyyy}", // Sep 7 - 13 2009
day: 'dddd, MMM d, yyyy'// Tuesday, Sep 8, 2009 }
buttonText视图里每个button显示的文字
{ prev: ' ◄ ', // left triangle
next:' ► ', // right triangle
prevYear:' << ', // <<
nextYear:' >> ', // >>
today: 'today',
month: 'month',
week: 'week',
day: 'day' }
monthNames月的全称
monthNamesShort月的简称
dayNames星期的全称
dayNamesShort星期的简称
4.8、相关点击事件
dayClick (callback)当某天被点击时触发
function( date, allDay, jsEvent, view ) { }
date:当前点击到的日期
allDay :是否是全天性的
jsEvent:底层的JS事件
view :当前的view对象
this关键字指代为
eventClick (callback)当一个事件给点击时触发
function( event, jsEvent, view ) { }
event :当前的event对象
jsEvent :底层的JS事件
view :当前的view
this:指代的
里的元素
eventMouseover (callback)鼠标滑动到事件上触发,同eventClick类似
eventMouseout (callback)鼠标离开到事件上触发,同eventClick类似
4.9、选中相关:当点击或者拖拽到相关位置时,非否选中对应元素
selectable是否选中对应元素
selectHelper
在日程表相关的view里,当选中对应时刻时,是否显示相关信息
unselectAuto
当点击页面日历以外的位置时,是否自动取消当前的选中
unselectCancel
指定哪些元素不会清空当前的选中,以JQUERY选择器的方式指定 '#someId'
select (callback)被选中时的函数回调
function( startDate, endDate, allDay, jsEvent, view )
unselect (callback)选中被取消时的回调
select (method)选中某个时间
.fullCalendar( 'select', startDate, endDate, allDay )
unselect (method)取消选中
.fullCalendar( 'unselect' )
4.10、Event相关
EventObject事件对象
id
可选,事件唯一标识,重复的事件具有相同的
title
必须,事件在日历上显示的title
allDay
可选,是否是整日事件
start
必须,事件的开始时间
end
可选,结束时间
url
可选,当指定后,事件被点击将打开对应url
className
指定事件的样式
editable
是否可拖拽
source
指向次event的eventsource对象
color
背景和边框颜色
backgroundColor
背景颜色
borderColor
边框颜色
textColor
文本颜色
EventSource Object
EVENTS:在日历界面里,参数event的对象:分array,json feed,function三种类型
Eventsource:
{
events: [
{ title: 'Event1',
start: '2011-04-04' },
{ title: 'Event2',
start: '2011-05-05' } // etc... ],
color: 'yellow', // anoption!
textColor: 'black' // an option!
}
eventsource可选的配置选项
className
指定事件的样式
editable
是否可拖拽
source
指向次event的eventsource对象
color
背景和边框颜色
backgroundColor
背景颜色
borderColor
边框颜色
textColor
文本颜色
events (asan array)数组形式组织的事件集
$('#calendar').fullCalendar({
events: [
{
title : 'event1',
start : '2010-01-01'
},
{
title : 'event2',
start : '2010-01-05',
end : '2010-01-07'
},
{
title : 'event3',
start : '2010-01-09 12:30:00',
allDay : false //will make the time show
}
]
});
events (asa json feed)JSON源方式获取的events
每次当view的时间改变时,均会获取json。其中start和end为对应view的start和end,插入_是默认不访问浏览器缓存。可通过cache:true来默认读取浏览器缓存
$('#calendar').fullCalendar({
events: '/myfeed.php'
});
会被转换为如下url请求
/myfeed.php?start=1262332800&end=1265011200&_=1263178646
events (asa function)
作为方法的形式获得event
$('#calendar').fullCalendar({
events: function(start,end, callback) {
$.ajax({
url:'myxmlfeed.php',
dataType: 'xml',
data: {
// ourhypothetical feed requires UNIX timestamps
start:Math.round(start.getTime() / 1000),
end: Math.round(end.getTime()/ 1000)
},
success:function(doc) {
var events =[];
$(doc).find('event').each(function() {
events.push({
title:$(this).attr('title'),
start:$(this).attr('start') // will be parsed
});
});
callback(events);
}
});
}
});
start和end同之前开始和结束时间(默认为-1970的毫秒)
callback为当获取到event后,会调用的改回调函数,把数据放入fullcalendar里的events里。
eventSources
可以放置多个eventSource(events)
$('#calendar').fullCalendar({
eventSources: [
'/feed1.php',
'/feed2.php'
]
});
allDayDefault
当event object里的allDay为指定时,其默认值
ignoreTimezone忽略timeZone
2008-11-05T08:15:30-05:00
startParam传递给服务器的start参数名
endParam同上
lazyFetching
当view改变时,是否从缓存信息获取event。比如从月视图切换到周视图,默认为是
loading (callback)function( isLoading, view )
当调用ajax获取event是触发。
updateEvent (method)
在客户端更新event并在页面上重新描绘
clientEvents (method)
获取客户端保存的所有events对象
.fullCalendar( 'clientEvents' [, idOrFilter ]) -> Array
removeEvents (method)
删除event并重新描绘
refetchEvents (method)
重新获取events并重新描绘
addEventSource (method)
添加eventSource,并立刻在页面上描绘
.fullCalendar( 'addEventSource', source )
removeEventSource (method)
同上
4.11、事件描绘(对应于整个callendar里的事件)
eventColor
eventBackgroundColor
eventBorderColor
eventTextColor
eventRender (callback)
当描绘事件时触发
function( event, element, view ) { }
event为改事件,element为用来渲染改事件的div元素
eventAfterRender (callback)
同上
renderEvent (method)
.fullCalendar( 'renderEvent', event [, stick ] )
rerenderEvents (method)
.fullCalendar( 'rerenderEvents' )
同refetchEvents
4.12、拖拽事件
需要添加JQUERY UIDraggable 插件,并把editable设置为true。相关属性和方法同事件类似
editable
Determines whether the events on the calendar can be modified.
disableDragging
Disables all event dragging, even when events are editable.
disableResizing
Disables all event resizing, even when events are editable.
dragRevertDuration
Time it takes for an event to revert to its original position afteran unsuccessful drag.
dragOpacity
The opacity of an event while it is being dragged.
eventDragStart (callback)
Triggered when event dragging begins.
eventDragStop (callback)
Triggered when event dragging stops.
eventDrop (callback)
Triggered when dragging stops and the event has moved to a differentday/time.
eventResizeStart (callback)
Triggered when event resizing begins.
eventResizeStop (callback)
Triggered when event resizing stops.
eventResize (callback)
Triggered when resizing stops and the event has changed in duration.
4.13、从日历外拖拽事件到日历中
额外需求:
①需要jquery-ui相关控件的支持jquery-ui-1.8.17.custom.min.js
②日历的dropple属性需设置为true
基本思路
①在日历胖构建好用来拖拽的元素
②设置相应div的drop操作
$('#external-events div.external-event').each(function() {
// create an Event Object
// it doesn't need to have a start or end
var eventObject = {
title: $.trim($(this).text()) // use the element's text as the eventtitle
};
// store the Event Object in the DOM element so we can get to itlater
$(this).data('eventObject', eventObject);
// make the event draggable using jQuery UI
$(this).draggable({
zIndex: 999,
revert: true, // willcause the event to go back to its
revertDuration: 0 // original position after the drag
});
});
③在日历中的drop回调中进行构造event并描绘
drop: function(date, allDay) { // this function is called whensomething is dropped
// retrieve the dropped element's stored Event Object
var originalEventObject = $(this).data('eventObject');
// we need to copy it, so that multiple events don't have areference to the same object
var copiedEventObject = $.extend({}, originalEventObject);
// assign it the date that was reported
copiedEventObject.start = date;
copiedEventObject.allDay = allDay;
// render the event on the calendar
// the last `true` argument determines if the event"sticks" (http://arshaw.com/fullcalendar/docs/event_rendering/renderEvent/)
$('#calendar').fullCalendar('renderEvent', copiedEventObject, true);
// is the "remove after drop" checkbox checked?
if ($('#drop-remove').is(':checked')) {
// if so, remove the element from the "Draggable Events"list
$(this).remove();
}
}
4.14、日期转换工具
formatDate (function)
Formats a Date object into a string.
formatDates (function)
Formats a date range (two Date objects)into a string.
parseDate (function)
Parses a string into a Date object.
parseISO8601 (function)
Parses an ISO8601 string into a Dateobject.
你可能感兴趣的:(WEB)
理解Gunicorn:Python WSGI服务器的基石
范范0825
ipython linux 运维
理解Gunicorn:PythonWSGI服务器的基石介绍Gunicorn,全称GreenUnicorn,是一个为PythonWSGI(WebServerGatewayInterface)应用设计的高效、轻量级HTTP服务器。作为PythonWeb应用部署的常用工具,Gunicorn以其高性能和易用性著称。本文将介绍Gunicorn的基本概念、安装和配置,帮助初学者快速上手。1.什么是Gunico
Google earth studio 简介
陟彼高冈yu
旅游
GoogleEarthStudio是一个基于Web的动画工具,专为创作使用GoogleEarth数据的动画和视频而设计。它利用了GoogleEarth强大的三维地图和卫星影像数据库,使用户能够轻松地创建逼真的地球动画、航拍视频和动态地图可视化。网址为https://www.google.com/earth/studio/。GoogleEarthStudio是一个基于Web的动画工具,专为创作使用G
PHP环境搭建详细教程
好看资源平台
前端 php
PHP是一个流行的服务器端脚本语言,广泛用于Web开发。为了使PHP能够在本地或服务器上运行,我们需要搭建一个合适的PHP环境。本教程将结合最新资料,介绍在不同操作系统上搭建PHP开发环境的多种方法,包括Windows、macOS和Linux系统的安装步骤,以及本地和Docker环境的配置。1.PHP环境搭建概述PHP环境的搭建主要分为以下几类:集成开发环境:例如XAMPP、WAMP、MAMP,这
DIV+CSS+JavaScript技术制作网页(旅游主题网页设计与制作)云南大理
STU学生网页设计
网页设计 期末网页作业 html静态网页 html5期末大作业 网页设计 web大作业
️精彩专栏推荐作者主页:【进入主页—获取更多源码】web前端期末大作业:【HTML5网页期末作业(1000套)】程序员有趣的告白方式:【HTML七夕情人节表白网页制作(110套)】文章目录二、网站介绍三、网站效果▶️1.视频演示2.图片演示四、网站代码HTML结构代码CSS样式代码五、更多源码二、网站介绍网站布局方面:计划采用目前主流的、能兼容各大主流浏览器、显示效果稳定的浮动网页布局结构。网站程
关于城市旅游的HTML网页设计——(旅游风景云南 5页)HTML+CSS+JavaScript
二挡起步
web前端期末大作业 javascript html css 旅游 风景
⛵源码获取文末联系✈Web前端开发技术描述网页设计题材,DIV+CSS布局制作,HTML+CSS网页设计期末课程大作业|游景点介绍|旅游风景区|家乡介绍|等网站的设计与制作|HTML期末大学生网页设计作业,Web大学生网页HTML:结构CSS:样式在操作方面上运用了html5和css3,采用了div+css结构、表单、超链接、浮动、绝对定位、相对定位、字体样式、引用视频等基础知识JavaScrip
HTML网页设计制作大作业(div+css) 云南我的家乡旅游景点 带文字滚动
二挡起步
web前端期末大作业 web设计网页规划与设计 html css javascript dreamweaver 前端
Web前端开发技术描述网页设计题材,DIV+CSS布局制作,HTML+CSS网页设计期末课程大作业游景点介绍|旅游风景区|家乡介绍|等网站的设计与制作HTML期末大学生网页设计作业HTML:结构CSS:样式在操作方面上运用了html5和css3,采用了div+css结构、表单、超链接、浮动、绝对定位、相对定位、字体样式、引用视频等基础知识JavaScript:做与用户的交互行为文章目录前端学习路线
git - Webhook让部署自动化
大猪大猪
我们现在有一个需求,将项目打包上传到gitlab或者github后,程序能自动部署,不用手动地去服务器中进行项目更新并运行,如何做到?这里我们可以使用gitlab与github的挂钩,挂钩的原理就是,每当我们有请求到gitlab与github服务器时,这时他俩会根据我们配置的挂钩地扯进行访问,webhook挂钩程序会一直监听着某个端口请求,一但收到他们发过来的请求,这时就知道用户有请求提交了,这时
webpack图片等资源的处理
dmengmeng
需要的loaderfile-loader(让我们可以引入这些资源文件)url-loader(其实是file-loader的二次封装)img-loader(处理图片所需要的)在没有使用任何处理图片的loader之前,比如说css中用到了背景图片,那么最后打包会报错的,因为他没办法处理图片。其实你只想能够使用图片的话。只加一个file-loader就可以,打开网页能准确看到图片。{test:/\.(p
「豆包Marscode体验官」 | 云端 IDE 启动 & Rust 体验
张风捷特烈
ide rust 开发语言 后端
theme:cyanosis我正在参加「豆包MarsCode初体验」征文活动MarsCode可以看作一个运行在服务端的远程VSCode开发环境。对于我这种想要学习体验某些语言,但不想在电脑里装环境的人来说非常友好。本文就来介绍一下在MarsCode里,我的体验rust开发体验。一、MarsCode是什么它的本质是:提供代码助手和云端IDE服务的web网站,可通过下面的链接访问https://www
Python神器!WEB自动化测试集成工具 DrissionPage
亚丁号
python 开发语言
一、前言用requests做数据采集面对要登录的网站时,要分析数据包、JS源码,构造复杂的请求,往往还要应付验证码、JS混淆、签名参数等反爬手段,门槛较高。若数据是由JS计算生成的,还须重现计算过程,体验不好,开发效率不高。使用浏览器,可以很大程度上绕过这些坑,但浏览器运行效率不高。因此,这个库设计初衷,是将它们合而为一,能够在不同须要时切换相应模式,并提供一种人性化的使用方法,提高开发和运行效率
Java爬虫框架(一)--架构设计
狼图腾-狼之传说
java 框架 java 任务 html解析器 存储 电子商务
一、架构图那里搜网络爬虫框架主要针对电子商务网站进行数据爬取,分析,存储,索引。爬虫:爬虫负责爬取,解析,处理电子商务网站的网页的内容数据库:存储商品信息索引:商品的全文搜索索引Task队列:需要爬取的网页列表Visited表:已经爬取过的网页列表爬虫监控平台:web平台可以启动,停止爬虫,管理爬虫,task队列,visited表。二、爬虫1.流程1)Scheduler启动爬虫器,TaskMast
Java:爬虫框架
dingcho
Java java 爬虫
一、ApacheNutch2【参考地址】Nutch是一个开源Java实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。包括全文搜索和Web爬虫。Nutch致力于让每个人能很容易,同时花费很少就可以配置世界一流的Web搜索引擎.为了完成这一宏伟的目标,Nutch必须能够做到:每个月取几十亿网页为这些网页维护一个索引对索引文件进行每秒上千次的搜索提供高质量的搜索结果简单来说Nutch支持分
MongoDB知识概括
GeorgeLin98
持久层 mongodb
MongoDB知识概括MongoDB相关概念单机部署基本常用命令索引-IndexSpirngDataMongoDB集成副本集分片集群安全认证MongoDB相关概念业务应用场景:传统的关系型数据库(如MySQL),在数据操作的“三高”需求以及应对Web2.0的网站需求面前,显得力不从心。解释:“三高”需求:①Highperformance-对数据库高并发读写的需求。②HugeStorage-对海量数
Python实现下载当前年份的谷歌影像
sand&wich
python 开发语言
在GIS项目和地图应用中,获取最新的地理影像数据是非常重要的。本文将介绍如何使用Python代码从Google地图自动下载当前年份的影像数据,并将其保存为高分辨率的TIFF格式文件。这个过程涉及地理坐标转换、多线程下载和图像处理。关键功能该脚本的核心功能包括:坐标转换:支持WGS-84与WebMercator投影之间转换,以及处理中国GCJ-02偏移。自动化下载:多线程下载地图瓦片,提高效率。图像
Spring MVC 全面指南:从入门到精通的详细解析
一杯梅子酱
技术栈学习 spring mvc java
引言:SpringMVC,作为Spring框架的一个重要模块,为构建Web应用提供了强大的功能和灵活性。无论是初学者还是有一定经验的开发者,掌握SpringMVC都将显著提升你的Web开发技能。本文旨在为初学者提供一个全面且易于理解的学习路径,通过详细的知识点分析和实际案例,帮助你快速上手SpringMVC,让学习过程既深刻又高效。一、SpringMVC简介1.1什么是SpringMVC?Spri
Spring Boot中实现跨域请求
BABA8891
spring boot 后端 java
在SpringBoot中实现跨域请求(CORS,Cross-OriginResourceSharing)可以通过多种方式,以下是几种常见的方法:1.使用@CrossOrigin注解在SpringBoot中,你可以在控制器或者具体的请求处理方法上使用@CrossOrigin注解来允许跨域请求。在控制器上应用:importorg.springframework.web.bind.annotation.
WebMagic:强大的Java爬虫框架解析与实战
Aaron_945
Java java 爬虫 开发语言
文章目录引言官网链接WebMagic原理概述基础使用1.添加依赖2.编写PageProcessor高级使用1.自定义Pipeline2.分布式抓取优点结论引言在大数据时代,网络爬虫作为数据收集的重要工具,扮演着不可或缺的角色。Java作为一门广泛使用的编程语言,在爬虫开发领域也有其独特的优势。WebMagic是一个开源的Java爬虫框架,它提供了简单灵活的API,支持多线程、分布式抓取,以及丰富的
00. 这里整理了最全的爬虫框架(Java + Python)
有一只柴犬
爬虫系列 爬虫 java python
目录1、前言2、什么是网络爬虫3、常见的爬虫框架3.1、java框架3.1.1、WebMagic3.1.2、Jsoup3.1.3、HttpClient3.1.4、Crawler4j3.1.5、HtmlUnit3.1.6、Selenium3.2、Python框架3.2.1、Scrapy3.2.2、BeautifulSoup+Requests3.2.3、Selenium3.2.4、PyQuery3.2
最简单将静态网页挂载到服务器上(不用nginx)
全能全知者
服务器 nginx 运维 前端 html 笔记
最简单将静态网页挂载到服务器上(不用nginx)如果随便弄个静态网页挂在服务器都要用nignx就太麻烦了,所以直接使用Apache来搭建一些简单前端静态网页会相对方便很多检查Web服务器服务状态:sudosystemctlstatushttpd#ApacheWeb服务器如果发现没有安装web服务器:安装Apache:sudoyuminstallhttpd启动Apache:sudosystemctl
uniapp使用内置地图选择插件,实现地址选择并在地图上标点
神夜大侠
Uniapp vue.js uniapp
uniapp使用内置地图选择插件,实现地址选择并在地图上标点代码如下:page{background:#F4F5F6;}::-webkit-scrollbar{width:0;height:0;color:transparent;}page{height:100%;width:100%;font-size:24rpx;}image,view,input,textarea,label,text,na
【Golang】实现 Excel 文件下载功能
RumIV
Golang golang excel 开发语言
在当今的网络应用开发中,提供数据导出功能是一项常见的需求。Excel作为一种广泛使用的电子表格格式,通常是数据导出的首选格式之一。在本教程中,我们将学习如何使用Go语言和GinWeb框架来创建一个Excel文件,并允许用户通过HTTP请求下载该文件。准备工作在开始之前,请确保您的开发环境中已经安装了Go语言和相关的开发工具。此外,您还需要安装GinWeb框架和excelize包,这两个包都将用于我
VUE3 + xterm + nestjs实现web远程终端 或 连接开启SSH登录的路由器和交换机。
焚木灵
node.js vue
可远程连接系统终端或开启SSH登录的路由器和交换机。相关资料:xtermjs/xterm.js:Aterminalfortheweb(github.com)后端实现(NestJS):1、安装依赖:npminstallnode-ssh@nestjs/websockets@nestjs/platform-socket.io2、我们将创建一个名为RemoteControlModule的NestJS模块,
metaRTC8.0,一个全新架构的webRTC SDK库
metaRTC
webrtc 音视频
概述metaRTC8.0是metaRTC开源以来架构变化最大的一个版本,是metaIPC3.0等高性能的基础。metaRTC8.0是一个全新架构版本,并非在metaRTC7.0版本上简单升级,在QOS/语音对讲/内存占用/视频文件录制读取等方面新增多个模块,在弱网对抗/语音对讲/内存优化等效果上有显著提升。metaRTC8.0在一年多的开发中进行了近200次迭代,metaRTC8.0社区版计划在2
metaRTC/webRTC QOS 方案与实践
metaRTC
metaRTC 解决方案 webrtc qos
概述质量服务(QOS/QualityofService)是指利用各种技术方案提高网络通信质量的技术,网络通信质量需要解决下面两个问题:网络问题:UDP/不稳定网络/弱网下的丢包/延时/乱序/抖动数据量问题:发送数据量超带宽负载和平滑发送拥塞控制是各种技术方案的数据基础,丢包恢复解决丢包问题,抗乱序抖动解决网络乱序抖动问题,流量控制解决平滑发送数据/数据超带宽负载/延时问题。拥塞控制(Congest
metaRTC5.0 API编程指南(一)
metaRTC
metaRTC c++ c语言 webrtc
概述metaRTC5.0版本API进行了重构,本篇文章将介绍webrtc传输调用流程和例子。metaRTC5.0版本提供了C++和纯C两种接口。纯C接口YangPeerConnection头文件:include/yangrtc/YangPeerConnection.htypedefstruct{void*conn;YangAVInfo*avinfo;YangStreamConfigstreamco
详解“c:/work/src/components/a/b.vue“‘ has no default export报错原因
hw_happy
开发语言 前端 vue.js javascript
前情提要在一个vue文件中需要引入定义的b.vue文件,但是提示b文件没有默认导出,对于vue2文件来说有exportdefault,在中,所有定义的变量、函数和组件都会自动被视为默认导出的组件内容。因此,不需要显式地使用exportdefault来导出组件。但是在我引用这个文件的时候还是提示了这个错误,原来是我的项目使用了ts和vite\webpack,因为TypeScript和Vue的默认导出
原力元宇宙:Web3时代下的虚拟现实融合与普通人逆袭的机遇
口碑信息传播者
在数字化浪潮席卷全球的今天,一个崭新的概念——原力元宇宙,正以其独特的魅力吸引着越来越多的目光。作为元宇宙国际性的一个项目,原力元宇宙不仅融合了Web3第三代互联网的前沿技术,更将虚拟现实与现实生活紧密相连,为我们描绘出一幅前所未有的数字新世界画卷。13分钟视频内容讲明白原力元宇宙创富项目,中国区运营服务对接微信:ForceZen原力元宇宙,是一个时代的跨越,它代表着互联网技术的又一次革新。Web
html+css网页设计 旅游网站首页1个页面
html+css+js网页设计
html css 旅游
html+css网页设计旅游网站首页1个页面网页作品代码简单,可使用任意HTML辑软件(如:Dreamweaver、HBuilder、Vscode、Sublime、Webstorm、Text、Notepad++等任意html编辑软件进行运行及修改编辑等操作)。获取源码1,访问该网站https://download.csdn.net/download/qq_42431718/897527112,点击
bat+ffmpeg批处理图片,图片批量转码
张雨zy
音视频 ffmpeg
直接在cmd中输入//批量转码文件for%ain("*.png")doffmpeg-i"%a"-fs1024k"%~na.webp"//删除所有pngdel*.png@echooff表示执行了这条命令后关闭所有命令(包括本身这条命令)的回显。而echooff命令则表示关闭其他所有命令(不包括本身这条命令)的回显,@的作用就是关闭紧跟其后的一条命令的回显脚本完整代码写入脚本中后,需要多加一个%,例如
css设置当字数超过限制后以省略号(...)显示
周bro
css 前端 vue css3 html 经验分享
1、文字超出一行,省略超出部分,显示’…’用text-overflow:ellipsis属性来,当然还需要加宽度width属来兼容部分浏览。overflow:hidden;text-overflow:ellipsis;white-space:nowrap;2、多行文本溢出显示省略号display:-webkit-box;-webkit-box-orient:vertical;-webkit-lin
eclipse maven
IXHONG
eclipse
eclipse中使用maven插件的时候,运行run as maven build的时候报错
-Dmaven.multiModuleProjectDirectory system propery is not set. Check $M2_HOME environment variable and mvn script match.
可以设一个环境变量M2_HOME指
timer cancel方法的一个小实例
alleni123
多线程 timer
package com.lj.timer;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
public class MyTimer extends TimerTask
{
private int a;
private Timer timer;
pub
MySQL数据库在Linux下的安装
ducklsl
mysql
1.建好一个专门放置MySQL的目录
/mysql/db数据库目录
/mysql/data数据库数据文件目录
2.配置用户,添加专门的MySQL管理用户
>groupadd mysql ----添加用户组
>useradd -g mysql mysql ----在mysql用户组中添加一个mysql用户
3.配置,生成并安装MySQL
>cmake -D
spring------>>cvc-elt.1: Cannot find the declaration of element
Array_06
spring bean
将--------
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3
maven发布第三方jar的一些问题
cugfy
maven
maven中发布 第三方jar到nexus仓库使用的是 deploy:deploy-file命令
有许多参数,具体可查看
http://maven.apache.org/plugins/maven-deploy-plugin/deploy-file-mojo.html
以下是一个例子:
mvn deploy:deploy-file -DgroupId=xpp3
MYSQL下载及安装
357029540
mysql
好久没有去安装过MYSQL,今天自己在安装完MYSQL过后用navicat for mysql去厕测试链接的时候出现了10061的问题,因为的的MYSQL是最新版本为5.6.24,所以下载的文件夹里没有my.ini文件,所以在网上找了很多方法还是没有找到怎么解决问题,最后看到了一篇百度经验里有这个的介绍,按照其步骤也完成了安装,在这里给大家分享下这个链接的地址
ios TableView cell的布局
张亚雄
tableview
cell.imageView.image = [UIImage imageNamed:[imageArray objectAtIndex:[indexPath row]]];
CGSize itemSize = CGSizeMake(60, 50);
&nbs
Java编码转义
adminjun
java 编码转义
import java.io.UnsupportedEncodingException;
/**
* 转换字符串的编码
*/
public class ChangeCharset {
/** 7位ASCII字符,也叫作ISO646-US、Unicode字符集的基本拉丁块 */
public static final Strin
Tomcat 配置和spring
aijuans
spring
简介
Tomcat启动时,先找系统变量CATALINA_BASE,如果没有,则找CATALINA_HOME。然后找这个变量所指的目录下的conf文件夹,从中读取配置文件。最重要的配置文件:server.xml 。要配置tomcat,基本上了解server.xml,context.xml和web.xml。
Server.xml -- tomcat主
Java打印当前目录下的所有子目录和文件
ayaoxinchao
递归 File
其实这个没啥技术含量,大湿们不要操笑哦,只是做一个简单的记录,简单用了一下递归算法。
import java.io.File;
/**
* @author Perlin
* @date 2014-6-30
*/
public class PrintDirectory {
public static void printDirectory(File f
linux安装mysql出现libs报冲突解决
BigBird2012
linux
linux安装mysql出现libs报冲突解决
安装mysql出现
file /usr/share/mysql/ukrainian/errmsg.sys from install of MySQL-server-5.5.33-1.linux2.6.i386 conflicts with file from package mysql-libs-5.1.61-4.el6.i686
jedis连接池使用实例
bijian1013
redis jedis连接池 jedis
实例代码:
package com.bijian.study;
import java.util.ArrayList;
import java.util.List;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoo
关于朋友
bingyingao
朋友 兴趣爱好 维持
成为朋友的必要条件:
志相同,道不合,可以成为朋友。譬如马云、周星驰一个是商人,一个是影星,可谓道不同,但都很有梦想,都要在各自领域里做到最好,当他们遇到一起,互相欣赏,可以畅谈两个小时。
志不同,道相合,也可以成为朋友。譬如有时候看到两个一个成绩很好每次考试争做第一,一个成绩很差的同学是好朋友。他们志向不相同,但他
【Spark七十九】Spark RDD API一
bit1129
spark
aggregate
package spark.examples.rddapi
import org.apache.spark.{SparkConf, SparkContext}
//测试RDD的aggregate方法
object AggregateTest {
def main(args: Array[String]) {
val conf = new Spar
ktap 0.1 released
bookjovi
kernel tracing
Dear,
I'm pleased to announce that ktap release v0.1, this is the first official
release of ktap project, it is expected that this release is not fully
functional or very stable and we welcome bu
能保存Properties文件注释的Properties工具类
BrokenDreams
properties
今天遇到一个小需求:由于java.util.Properties读取属性文件时会忽略注释,当写回去的时候,注释都没了。恰好一个项目中的配置文件会在部署后被某个Java程序修改一下,但修改了之后注释全没了,可能会给以后的参数调整带来困难。所以要解决这个问题。
&nb
读《研磨设计模式》-代码笔记-外观模式-Facade
bylijinnan
java 设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
/*
* 百度百科的定义:
* Facade(外观)模式为子系统中的各类(或结构与方法)提供一个简明一致的界面,
* 隐藏子系统的复杂性,使子系统更加容易使用。他是为子系统中的一组接口所提供的一个一致的界面
*
* 可简单地
After Effects教程收集
cherishLC
After Effects
1、中文入门
http://study.163.com/course/courseMain.htm?courseId=730009
2、videocopilot英文入门教程(中文字幕)
http://www.youku.com/playlist_show/id_17893193.html
英文原址:
http://www.videocopilot.net/basic/
素
Linux Apache 安装过程
crabdave
apache
Linux Apache 安装过程
下载新版本:
apr-1.4.2.tar.gz(下载网站:http://apr.apache.org/download.cgi)
apr-util-1.3.9.tar.gz(下载网站:http://apr.apache.org/download.cgi)
httpd-2.2.15.tar.gz(下载网站:http://httpd.apac
Shell学习 之 变量赋值和引用
daizj
shell 变量引用 赋值
本文转自:http://www.cnblogs.com/papam/articles/1548679.html
Shell编程中,使用变量无需事先声明,同时变量名的命名须遵循如下规则:
首个字符必须为字母(a-z,A-Z)
中间不能有空格,可以使用下划线(_)
不能使用标点符号
不能使用bash里的关键字(可用help命令查看保留关键字)
需要给变量赋值时,可以这么写:
Java SE 第一讲(Java SE入门、JDK的下载与安装、第一个Java程序、Java程序的编译与执行)
dcj3sjt126com
java jdk
Java SE 第一讲:
Java SE:Java Standard Edition
Java ME: Java Mobile Edition
Java EE:Java Enterprise Edition
Java是由Sun公司推出的(今年初被Oracle公司收购)。
收购价格:74亿美金
J2SE、J2ME、J2EE
JDK:Java Development
YII给用户登录加上验证码
dcj3sjt126com
yii
1、在SiteController中添加如下代码:
/**
* Declares class-based actions.
*/
public function actions() {
return array(
// captcha action renders the CAPTCHA image displ
Lucene使用说明
dyy_gusi
Lucene search 分词器
Lucene使用说明
1、lucene简介
1.1、什么是lucene
Lucene是一个全文搜索框架,而不是应用产品。因此它并不像baidu或者googleDesktop那种拿来就能用,它只是提供了一种工具让你能实现这些产品和功能。
1.2、lucene能做什么
要回答这个问题,先要了解lucene的本质。实际
学习编程并不难,做到以下几点即可!
gcq511120594
数据结构 编程 算法
不论你是想自己设计游戏,还是开发iPhone或安卓手机上的应用,还是仅仅为了娱乐,学习编程语言都是一条必经之路。编程语言种类繁多,用途各 异,然而一旦掌握其中之一,其他的也就迎刃而解。作为初学者,你可能要先从Java或HTML开始学,一旦掌握了一门编程语言,你就发挥无穷的想象,开发 各种神奇的软件啦。
1、确定目标
学习编程语言既充满乐趣,又充满挑战。有些花费多年时间学习一门编程语言的大学生到
Java面试十问之三:Java与C++内存回收机制的差别
HNUlanwei
java C++ finalize() 堆栈 内存回收
大家知道, Java 除了那 8 种基本类型以外,其他都是对象类型(又称为引用类型)的数据。 JVM 会把程序创建的对象存放在堆空间中,那什么又是堆空间呢?其实,堆( Heap)是一个运行时的数据存储区,从它可以分配大小各异的空间。一般,运行时的数据存储区有堆( Heap)和堆栈( Stack),所以要先看它们里面可以分配哪些类型的对象实体,然后才知道如何均衡使用这两种存储区。一般来说,栈中存放的
第二章 Nginx+Lua开发入门
jinnianshilongnian
nginx lua
Nginx入门
本文目的是学习Nginx+Lua开发,对于Nginx基本知识可以参考如下文章:
nginx启动、关闭、重启
http://www.cnblogs.com/derekchen/archive/2011/02/17/1957209.html
agentzh 的 Nginx 教程
http://openresty.org/download/agentzh-nginx-tutor
MongoDB windows安装 基本命令
liyonghui160com
windows安装
安装目录:
D:\MongoDB\
新建目录
D:\MongoDB\data\db
4.启动进城:
cd D:\MongoDB\bin
mongod -dbpath D:\MongoDB\data\db
&n
Linux下通过源码编译安装程序
pda158
linux
一、程序的组成部分 Linux下程序大都是由以下几部分组成: 二进制文件:也就是可以运行的程序文件 库文件:就是通常我们见到的lib目录下的文件 配置文件:这个不必多说,都知道 帮助文档:通常是我们在linux下用man命令查看的命令的文档
二、linux下程序的存放目录 linux程序的存放目录大致有三个地方: /etc, /b
WEB开发编程的职业生涯4个阶段
shw3588
编程 Web 工作 生活
觉得自己什么都会
2007年从学校毕业,凭借自己原创的ASP毕业设计,以为自己很厉害似的,信心满满去东莞找工作,找面试成功率确实很高,只是工资不高,但依旧无法磨灭那过分的自信,那时候什么考勤系统、什么OA系统、什么ERP,什么都觉得有信心,这样的生涯大概持续了约一年。
根本不是自己想的那样
2008年开始接触很多工作相关的东西,发现太多东西自己根本不会,都需要去学,不管是asp还是js,
遭遇jsonp同域下变作post请求的坑
vb2005xu
jsonp 同域post
今天迁移一个站点时遇到一个坑爹问题,同一个jsonp接口在跨域时都能调用成功,但是在同域下调用虽然成功,但是数据却有问题. 此处贴出我的后端代码片段
$mi_id = htmlspecialchars(trim($_GET['mi_id ']));
$mi_cv = htmlspecialchars(trim($_GET['mi_cv ']));
贴出我前端代码片段:
$.aj