: 《揭秘 vivo 如何打造千万级 DAU 活动中台 - 启航篇》 主要为大家讲述 vivo 活动中台的能力与创新。 《悟空活动中台 - 微组件状态管理(上)》介绍了活动页内 RSC 组件之间的状态管理和背后的设计思路。 《悟空活动中台 - 微组件状态管理(下)》探索平台和跨沙箱环境下的微组件状态管理。 一、背景 通过之前悟空活动中台系列文章,大家对微组件、动态布局等技术方案有了一定的了解。本篇我们带大家了解下悟空H5专题性能优化之路。 在移动互联网时代,H5页面加载体验至关重要。 (4)动态字体压缩 字体文件大小普遍在2M左右,H5活动页面字体量有限,但仅仅为少量特殊文字全量引入字体文件,页面性能损耗非常大。 (3)减少白屏时间 相比 Native 页面,H5 页面体验问题主要是:打开一个 H5 页面需要做一系列处理,会有一段白屏时间,体验糟糕。
概念 在活动图中,需要明确以下几个概念: 活动 动作 对象 控制 活动 活动(Activity)是指通常是指一个完整的功能性单元。它由一系列相互关联的动作流组成。 控制 控制(control)是活动图中的各种逻辑单元。 常见的有活动开始、活动结束、选择分支开始、选择分支合并、并行动作开始、并行动作合并。 活动开始:实心圆+箭头,表示整个活动的开始 ? using multiplicity and collections in UML - lower and upper bounds, cardinality, order, unique. 2019-5- 30-UML基础 - huangtengxiao 2019-5-30-UML用例图 - huangtengxiao ---- 本文会经常更新,请阅读原文: https://xinyuehtx.github.io /post/UML%E6%B4%BB%E5%8A%A8%E5%9B%BE.html ,以避免陈旧错误知识的误导,同时有更好的阅读体验。
- 2015年的老文,搬运存档用 - 作为一个UI工程师,在这个移动互联网叱咤风云的时代,每次看到timeline中被分享的各种花样H5页面,总是心痒难耐,也想做有着酷炫动画和带感声效的H5呢。 刚好企鹅FM为了迎接中元节,要做一期相关的活动页面,关键是宣传的内容用的还是盗墓笔记,盗墓笔记和盗墓笔记啊。 哦,等一下,请先扫一下二维码啦~ 01.jpg 前期沟通 在接到了需求以后,先是看视觉稿和整个活动页的流程,再设想一些动画效果后去和产品以及设计师沟通的。 效果实现 仔细想想,这个活动页面并没有用到什么高深技巧,基本上是用 position 定位和 CSS3 动画完成的。 拿这次的活动页面设计稿来说,与用户产生交互的按钮在页面篇底部的位置。
活动对象:腾讯公司员工 活动时间:2024.5.1— 2024.5.31 ---- 新人入驻领好礼 2024.5.1~2024.5.31期间,申请加入腾讯云原创分享计划,成为腾讯云开发者社区的原创作者, 5月原创内容挑战赛 | 赛段有礼 活动中每个赛段,发文量最高、作品影响力最高的作者,分别可获鹅厂限定周边套装。 *若排名出现并列情况,取赛段内最早达标的作者为准。 *若文章同时参加社区发布的其他征文的活动,将默认不参与此评奖。 关注维度 获奖要求 奖品 赛段 知识贡献量 首发原创发文量排名第1 联想头戴式电脑耳麦+怪奇鹅定制超柔抱枕 赛段1:5月1日00:00-5月16日 23:59 赛段2:5月17日00:00-5月31日 新作者礼品加入后次月发送;赛段评奖活动统计时间为每个赛段的开始日00:00至赛段结束日的23:59,活动结束后第5个工作日公布赛段获奖结果; 6、若当月奖品涉及腾讯云代金券,则代金券仅发放至作者个人的腾讯云账号
活动图的介绍 活动图可以看成是面向对象版的流程图,它是一种行为型模型图,主要用于表达系统某个功能的流程。 活动图的作用是描述一系列具体动态过程的执行逻辑,展现活动和活动之间的转移的控制流,并且它采用了一种着重逻辑过程的方式来叙述。 主要元素 活动图主要动作、活动、动作流、分支与合并、分叉与汇合、泳道和对象流等元素。 动作和活动 一、动作代表一个原子操作,操作可能是任何合法的行为。 泳道 泳道是将活动图中的具体活动按照负责进行该活动的对象进行分区,一条泳道中的所有活动由同一个对象来执行。除了以上的对线性流程进行分区以外,使用泳道表示法还可以更清晰地表示并发。 把活动节点纵向按照事件发生顺序,横向按照参与角色和系统角色对应填入活动图中。 综合例子 总结 本文详细介绍了UML活动图的信息。
腾讯云开发者社区将试运行自媒体作者月度评奖活动(以下简称活动)。 一、面向对象 已加入腾讯云开发者社区自媒体分享计划的作者(当月加入的新作者不参与当月的评奖活动)。 二、活动时间 2020.05.1-2020.05.31 ps.评奖内容每月更新,本规则为2020年5月的活动规则;此后每个月的奖项设置、具体奖品和活动规则可能会有所不同,请各位作者关注每个月的活动公告。 获奖奖品:腾讯定制鼠年公仔x1 image.png 【腾讯云开发者社区自媒体邀请达人】 获奖条件:不限获奖名额,当月通过自己的专属链接邀请≥5个好友(新作者)成功入驻腾讯云开发者社区的自媒体作者均可获此奖项
H5营销活动平台采用P3-Weixin插件开发框架,开发微信H5活动,插件以JAR形式存在,支持独立部署,解决H5活动,用户量大,并发高的问题。 (提供成熟的分布式解决方案) 特点 采用插件模式开发H5营销活动,独立部署,解决微信活动大用户、高并发问题。 微信H5活动插件列表 微信砍价活动 P3-Biz-gzbargain 摇一摇送卡券 P3-Biz-shaketicket 九宫格活动 P3-Biz-jiugongge 斧头帮砍价 P3-Biz-commonftb 砍价活动-效果图 ? jeecgframework/p3/cg/util/CodeToolUtil.java 2.配置文件:P3-Web/src/main/resources/p3-cg-config.properties H5活动营销平台
Hi 大西安的设计师小伙伴们,5月12日,西安首次UX Design in Action即将惊喜来袭。 交流平台我们已搭建好,大家一起来参加本期活动分享吧:) 【 时 间 地 点 】 2018年5月12日(周六)13:10—17:00,12:50开始签到。 西安市天谷八路环普产业园E座5楼ThoughtWorks办公室。 【 报 名 须 知 】 免费技术交流活动,本次活动不设报名门槛,只要你对话题感兴趣,我们就欢迎你的到来。希望找到跟话题最相关的你! 【 活 动 福 利 】 参与活动,即有机会获得由ThoughtWorks提供的各种精美礼品。
return getDataTable(iActivityService.selectActivityList(activityVO)); } IActivityService.java /** * 查询活动列表 * * @param activityVO 活动信息 * @return {@code List<ActivityVO>} */ List<ActivityVO> selectActivityList ActivityServiceImpl.java @Override public List<ActivityVO> selectActivityList(ActivityVO activityVO) { // 将超过当前时间的活动状态设置为禁用 expireActivity(); return activityMapper.selectActivityList(activityVO); } ActivityMapper.java /** * 查询活动列表 * * @param activityVO 活动信息 * @return {@code List<ActivityVO>} */ List<ActivityVO> selectActivityList
后端 ActivityController.java @PreAuthorize("hasPermission('tienchin:activity:remove')") @Log(title = "活动管理 return toAjax(iActivityService.deleteActivityByIds(activityIds)); } IActivityService.java /** * 删除活动 * * @param activityIds 活动Ids * @return int 删除结果 * @author BNTang * @since 2023/09/22 01:37:35
请点击蓝字 关注我们 继上次官方公众号宣布DNSPod平台接入大量个性化尾缀之后,阿D在后台不断地收到建议消息,大部分小伙伴还是希望搞个域名转入的活动。 这不! 本次活动,平台所有支持转入的域名后缀都可以参与 。 特别ps. 不做新老用户区分,见者有份 ,但是数量有所限制,所以有域名转入想法的伙伴们可别观望太久哟,直接戳以下链接 ↓ 领取代金券。 并且阿D悄悄告诉你,老板特别说明,下次活动力度大不大要看这次活动反响好不好 。
提到线上活动,其实必不可少的就是各种线上团建啦! 3、减重组队大赛 这个活动,就是我们万能的HR小姐姐最近用乐享发起的减重活动,不得不说大家反响非常热烈,减重成功还有大额现金红包! 4、优秀员工案例激励 除了上述的各种线上团建比赛,也可以来点“润物细无声”的活动。 5、晒照片有福利 晒照片同样也是一种低门槛且能号召大家一起加入的活动方式,万科物业在3.8女神节时就用乐享乐问发起了“晒照赢大奖”的活动,获得同事们的踊跃参与。 其实在这个阶段确实可以多多发起这种活动,不仅局限在晒女神,也可以发起晒出身边的榜样员工、好导师、好领导等~ ? ? (本文客户案例均经客户授权) ? 重磅预告:大牛课程要来啦!
return AjaxResult.success(iChannelService.getById(channelId)); } ActivityController.java /** * 根据活动 ID查询一个具体的活动信息 * * @param activityId 活动ID * @return {@link AjaxResult} */ @PreAuthorize("hasPermission AjaxResult.success(iActivityService.getActivityById(activityId)); } IActivityService.java /** * 根据活动 ID查询一个具体的活动信息 * * @param activityId 活动ID * @return {@link ActivityVO} */ ActivityVO getActivityById
ActivityController /** * 导出活动列表 */ @PreAuthorize("hasPermission('tienchin:activity:export')") @Log ActivityVO> util = new ExcelUtil<>(ActivityVO.class); util.exportExcel(response, activityVOList, "活动数据 }) @Excel(name = "活动ID") private Integer activityId; /** * 活动名称 */ @NotBlank(message = "{activity.name.notBlank 20, message = "{activity.name.size}", groups = {EditGroup.class, CreateGroup.class}) @Excel(name = "活动名称 }", groups = {EditGroup.class, CreateGroup.class}) @Excel(name = "活动类型", readConverterExp = "1=折扣券,2=
现在我们来对配置模块进行完善,除了已有的模块以外,我们还有一些banner ,活动入口等模块,这些模块的数据并不多,所以我们也归纳到配置中去实现。 @State homeActivity:HomeActivitySetting[]=[]//首页活动配置 @State homeGoodCenter:HomeGoodCenter[]=[]//商品活动入口 hilog.error(0x0000, 'testTag', `Failed to query data, code: ${this.homeActivity}`); let list5 = JSON.stringify(list5) let data5:HomeGoodCenter[]= JSON.parse(json5) this.homeGoodCenter=data5 margin({ bottom: 8 }) .objectFit(ImageFit.Cover) } .borderRadius(5)
修改字典 修改活动状态字典,将之前的数据键值为 0 的数据标签内容改为 过期: 更改下数据库的描述,禁用改为过期: ALTER TABLE `tienchin_activity` MODIFY COLUMN `activity_status` int NULL DEFAULT NULL COMMENT '活动状态,0.表示过期、1.表示正常' AFTER `activity_type`; Activity /** * 活动状态,0.表示过期、1.表示正常 */ private Integer activityStatus; ActivityServiceImpl 编写一个将超过当前时间的活动状态设置为禁用 @Override public List<ActivityVO> selectActivityList() { // 将超过当前时间的活动状态设置为禁用 expireActivity( () { UpdateWrapper<Activity> uw = new UpdateWrapper<>(); // 将原本状态为正常的活动状态为1,并且 endTime 小于当前时间的活动状态设置为过期
"添加成功" : "添加失败"); } IActivityService /** * 添加活动 * * @param activityVO 活动信息 * @return 结果 */ int addActivity 1 : 0; } ValidationMessages.properties # 活动管理 activity.name.notBlank=活动名称不能为空 activity.name.size=活动名称最大长度为 20个字符 activity.channelId.notnull=渠道ID不能为空 activity.info.notBlank=活动简介不能为空 activity.info.size=活动简介最多为255 个字符 activity.type.notnull=活动类型不能为空 activity.status.max=活动状态最大值为1 activity.status.min=活动状态最小值为0 activity.discount.max activity.endTime.notnull=活动结束时间不能为空 ActivityVO /** * 活动名称 */ @NotBlank(message = "{activity.name.notBlank
channel.channelId" /> </el-select> </el-form-item> <el-form-item label="<em>活动</em>状态 value="dict.value" /> </el-select> </el-form-item> <el-form-item label="<em>活动</em>类型 " :show-overflow-tooltip="true" align="center" prop="activityInfo"/> <el-table-column label="<em>活动</em>类型 activityInfo: [{required: true, message: "活动简介不能为空", trigger: "blur"}], activityType: [{required: $modal.confirm('是否确认删除活动编号为"' + activityIds + '"的数据项?').
import request from '@/utils/request' /** * 查询活动列表 * @param query 查询条件参数 * @returns {*} 查询结果 */ request({ url: '/tienchin/activity/channel/list', method: 'get' }) } /** * 查询活动详细 * @param activityId 活动ID * @returns {*} 查询结果 */ export function getInfo(activityId) { return request({ url: '/tienchin/activity/' + activityId, method: 'get' }) } // 查询活动详细 "更新成功" : "更新失败"); } ValidationMessages.properties 添加一个活动id不能为空的校验信息: activity.id.notnull=活动ID不能为空 ActivityVO
后端 ActivityVO /** * @author BNTang * @version 1.0 * @description 活动管理VO * @since 2023-23-05 **/ public class ActivityVO extends BaseEntity { /** * 活动ID */ private Integer activityId ; /** * 活动名称 */ private String activityName; /** * 渠道ID */ private Integer channelId; /** * 渠道名称 */ private String channelName; /** * 活动简介 activityType; /** * 活动状态,0.表示禁用、1.表示正常 */ private Integer activityStatus; /*