- 【openwrt】openwrt21.02 dhcpv6 Stateless Vs Stateful Vs Stateless & Stateful配置说明
wellnw
Openwrtopenwrtodhcpd
odhcpddhcpConfigurationforDHCPv4,DHCPv6,RAandNDPservices.NameTypeRequiredDefaultDescriptioninterfacestringLogicalOpenWrtinterface.ifnamestringPhysicalnetworkinterface.networkidstringAliasofifnameforco
- java 字符串日期字段格式化前端显示
qq_36608622
java开发语言
在Java应用程序中,如果你有一个字符串类型的日期字段,并希望将其格式化后显示在前端,可以通过多种方式实现。这通常涉及到在后端将字符串转换为Date或LocalDateTime等对象,然后使用适当的注解或配置来确保它们以正确的格式序列化为JSON发送到前端。以下是几种常见方法:方法一:使用@JsonFormat注解(Jackson)如果你使用的是Jackson来处理JSON序列化和反序列化,可以在
- 【Node.js】Koa2 整合接口文档
秀秀_heo
Node.js后端开发node.js
部分学习来源:https://blog.csdn.net/qq_38734862/article/details/107715579依赖//koa2-swagger-uiUI视图组件swagger-jsdoc识别写的/***/转jsonnpminstallkoa2-swagger-uiswagger-jsdoc--save配置config\swaggerConfig.jsconstRouter=r
- Mac系统安装 deepxde +VS code + pytorch
积分酱
pytorchpython人工智能机器学习
deepxde在Mac系统安装和学习笔记系列因为换了苹果电脑MacBookPro,所以软件都需要重新安装,记录一下安装过程。我的配置是python+VSCode。打开终端,直接按住command+空格键,输入终端就可以打开了。1.deepxde安装首先输入python3--version查看python版本,我的是Python3.9.13然后输入python3-mpip-V查看自己的pip版本,我
- php yii 微信支付宝,Yii使用easywechat实现微信支付
爱吃生菜的鱼
phpyii微信支付宝
您现在的位置是:网站首页>>微信>>微信公众号Yii使用easywechat实现微信支付发布时间:2019-04-3011:43:07作者:wangjian浏览量:1142点赞量:0一:微信公众号申请微信支付申请微信公众号的微信支付申请这里就不进行叙述了二:yii配置支付配置这里我使用的是max-wen/yii2-easy-wechat,所以这里我参考的是3.X版本的文档2:微信支付配置'WECH
- 数据库性能调优中的配置参数调整:提升系统效率的关键环节
title:数据库性能调优中的配置参数调整:提升系统效率的关键环节date:2025/1/31updated:2025/1/31author:cmdragonexcerpt:数据库的性能直接影响到应用程序的响应能力和用户体验,因此在日常运维中,管理员需要定期对数据库系统进行性能调优。配置参数调整是数据库性能调优的重要组成部分,通过优化这些参数,能够显著提高数据库的性能和稳定性。categories
- 查看redis节点的连接数
youhebuke225
redisredis数据库缓存
在Redis中,查看节点的连接数是一个常见的监控和管理任务,它有助于了解Redis服务器的当前负载和连接状态。Redis本身并不直接提供一个专门的命令来“查看连接数”,但是可以通过几个不同的方式来获取这一信息。1.使用INFO命令INFO命令是Redis中最强大的命令之一,它提供了关于Redis服务器的各种统计信息和配置。通过INFO命令,你可以获取到当前与Redis服务器建立连接的总数。执行IN
- HDFS总结
ChenJieYaYa
Hadoophdfshadoopbigdata
基于前面的学习与配置,相信对于HDFS有了一定的了解HDFS概述1.什么是HDFSHadoopDistributedFileSystem:分步式文件系统HDFS是Hadoop体系中数据存储管理的基础HDFS是基于流数据模式访问和处理超大文件的需求而开发的1.流式数据:将数据序列化为字节流来存储,这样不会破坏文件的结构和内容,而且字节流直接存储在磁盘上,可以分片或分块2.当超大规模的文件本身就已经超
- redis连接数合理配置_Redis连接数不释放,可修改相关配置参数
孤独凤凰战士
redis连接数合理配置
工作中,曾遇到redis连接数一直不释放,导致请求阻塞甚至挂掉的问题。重启redis后,短暂性恢复正常,过一会又会异常。后来查阅相关文档了解到,对于此异常现象可以参考通过修改配置参数解决。timeout是指客户端和Redis服务端的连接超时时间,默认是0,表示永不超时;tcp-keepalive如果值非0,单位是秒,表示将周期性的使用SO_KEEPALIVE检测客户端是否还处于健康状态,避免服务器
- Springboot mysql配置和连接
奶龙牛牛
springbootmysqljava
spring.datasource.url=jdbc:mysql://localhost:3306/tedu_store?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghaispring.datasource.username=rootspring.datasource.password=123456mysqlmy
- 解决React Native运行问题:编程指南
心之飞跃
reactnativereact.jsjavascript编程
ReactNative是一种流行的跨平台移动应用开发框架,但有时候你可能会遇到无法运行ReactNative应用的问题。本文将提供一些常见问题的解决方法,帮助你快速解决ReactNative应用无法运行的情况。确保环境配置正确在开始解决ReactNative运行问题之前,首先要确保你的开发环境配置正确。以下是一些需要注意的关键点:Node.js:确保已经安装了最新版本的Node.js,并且可以通过
- 【网站架构部署与优化】Tomcat优化、Tomcat多实例部署
Karoku066
架构tomcatfirefoxlinux运维服务器bash
文章目录Tomcat优化Tomcat配置文件参数优化示例配置TomcatJVM参数配置参数解释注意总结Tomcat配置文件参数优化(`server.xml`)1.线程池参数2.网络连接参数3.性能优化参数Java虚拟机(JVM)调优1.堆内存设置2.新生代和老年代设置3.垃圾收集器设置4.其他性能优化参数常见错误及解决方法Tomcat多实例部署1.安装JDK和Tomcat2.配置Tomcat环境变
- 搞嵌入式开发,如何才能“小有所成”,获得更高的收入?
智驾
杂谈嵌入式职业规划
文章目录引言一、技术能力体系构建(金字塔模型)1.基础层(硬件理解)2.核心层(软件能力)3.扩展层(系统级能力)二、项目经验增值策略1.开源项目参与2.行业级项目实战3.专利布局三、高价值领域选择1.薪资溢价行业2.技术风口方向四、职业发展加速路径1.认证体系进阶2.收入增长策略3.职场跃迁节点五、持续进化方法论1.技术雷达维护2.工程能力量化3.跨界能力融合六、薪资谈判策略1.构建技术护城河:
- USB鼠标实现——配置描述符集合(三)
tyustli
USB配置描述符接口描述符HID描述符端点描述符USB鼠标
文章目录配置描述符集合USB鼠标阅读顺序获取配置描述符请求标准设备请求USB控制端点收到的数据配置描述符集合返回配置描述符集合数据配置描述符集合分析配置描述符接口描述符类特殊描述符(HID描述符)端点描述符抓包分析setup阶段data阶段status阶段附STM32枚举日志配置描述符集合USB鼠标阅读顺序枚举过程USB鼠标实现——设备描述符(一)USB鼠标实现——设置地址(二)USB鼠标实现——
- USB鼠标分析——接口描述符(四)
tyustli
USBusb接口描述符
USB鼠标详解阅读顺序1、枚举2、设备描述符3、设置地址4、配置描述符5、接口描述符6、HID描述符7、端点描述符8、
- Python 如何使用访问Windows共享文件夹
蜡笔小新星
pythonwindows开发语言经验分享
文章目录引言前置条件步骤一:导入必要的模块步骤二:配置连接参数步骤三:实例化SMB连接对象并尝试连接步骤四:列出共享文件夹中的文件与文件夹步骤五:下载与上传文件(可选)步骤六:处理连接错误错误排查指南结论引言本教程旨在帮助您使用pysmb库,通过SMB(ServerMessageBlock)协议,轻松连接到Windows共享文件夹,并列举其中的文件与文件夹。此外,我们还将简要介绍如何下载和上传文件
- 修改训练配置记录
positive546
深度学习人工智能机器学习
1.learning_rate:作用:学习率。修改影响:调整此值可以显著影响模型的训练速度和最终性能。在train.py代码的设置训练配置中:trainer=SFTTrainer(model=model,tokenizer=tokenizer,train_dataset=dataset,dataset_text_field="text",max_seq_length=max_seq_length,
- 探索Oracle数据库的多租户特性:架构、优势与实践
2401_85812026
数据库oracle架构
在云计算和大数据时代,多租户架构成为数据库设计中的一个重要趋势。Oracle数据库的多租户选项(Multitenant)允许单个数据库实例支持多个独立数据库(称为容器数据库和可插拔数据库),每个数据库都有自己的数据、配置和资源。这种设计提高了资源利用率、简化了数据库管理,并增强了安全性。本文将深入探讨Oracle多租户选项的架构、优势以及如何在实际环境中部署和使用。1.多租户选项概述Oracle多
- Python: 配置清华源
Dark_Y3
Pythonpython开发语言
pipconfigsetglobal.index-urlhttps://pypi.tuna.tsinghua.edu.cn/simple
- OpenShift 4 - 集群节点日志和API审计日志策略
dawnsky.liu
OpsOpenShift4安全kubernetesopenshift日志
《OpenShift/RHEL/DevSecOps汇总目录》说明:本文已经在OpenShift4.8环境中验证文章目录集群节点日志集群节点日志类型收集集群节点日志OpenShiftAPI的审计日志OpenShiftAPI审计日志内容OpenShiftAPI审计日志策略查看审计日志的命令和操作使用缺省的API审计日志配置个性化API审计日志配置规则参考集群节点日志集群节点日志类型执行以下命令,可以在
- kubenetes配置vip的一些问题处理
warrah
岁月云——运维kuberneteskubeadminvip
按照kubeadm部署k8s高可用集群,执行kubeadminit--configkubeadm-config.yaml--v=5,初始化失败,添加--v=5是为了看更详细的日志信息kubernetes之kubeadm安装kubernetes高可用集群根据指示,跟进日志Unfortunately,anerrorhasoccurred:timedoutwaitingfortheconditionTh
- MySQL:从新手到专家的进阶指南
秦志鹏2
mysql数据库
引言在当今数据驱动的世界里,高效管理数据的能力对于企业和个人来说至关重要。MySQL,作为一款开源的关系型数据库管理系统,因其强大的功能、灵活性和广泛的社区支持,成为了数据库领域的明星。无论你是刚接触数据库的新手,还是寻求技能提升的中级开发者,本文都将带你深入了解MySQL,从基础入门到高级特性,逐步成长为MySQL的专家。第一部分:MySQL基础入门1.安装与配置安装教程:首先,访问MySQL官
- Debian source_list首次踩坑
大明__
linux运维debian运维
安装首次安装使用Debain,下载了最新的Debain安装镜像;下载地址,下载了文件debian-12.8.0-amd64-DVD-1.iso;而后通过,VMWare安装了虚拟机。账号配置安装过程中,会提示配置root账号及自定义账号xxxx,但是默认不能使用root账号,自定义的xxxx账号也没有sudo权限,所以需要通过recover模式登录root账号,然后将xxxx账号加入sudo组。us
- 大屏幕排队叫号小程序系统产品核心功能需求规划开发实例分享
v.15889726201
小程序
系统概述大屏幕排队叫号系统借助先进的信息技术,将排队、叫号、信息展示与数据分析等功能集于一体,为服务场所构建一个有序、高效的排队环境。通过自动化的排队叫号流程,减少人工干预,提高服务的准确性和效率;通过大屏幕实时展示排队信息,让客户对等待情况一目了然,增强信息透明度;通过数据分析功能,为服务场所提供决策依据,助力其优化服务流程与资源配置,从而全方位提升服务质量与客户满意度。以下我将详细介绍该系统的
- Jenkins配置allure生成报告失败
日日记
自动化测试pythonjenkins
现象1:提示AllureCommandline找不到问题原因:allure目录配置不对,不要配置到bin目录现象2:构建成功了,但是查看allure报告无数据
- Docker学习笔记(全网最详细)
Asher0509
docker学习笔记
Docker学习笔记(全网最详细)一、Docker的简介1.Docker是什么?1.1问题:为什么会有docker出现?一款产品从开发到上线,从操作系统,到运行环境,再到应用配置。作为开发+运维之间的协作我们需要关心很多东西,这也是很多互联网公司都不得不面对的问题,特别是各种版本的迭代之后,不同版本环境的兼容,对运维人员都是考验.Docker之所以发展如此迅速,也是因为它对此给出了一个标准化的解决
- springboot集成钉钉_SpringBoot集成钉钉报警sdk(解决Failed to introspect Class异常)
周愫理(西山飞鱼)
springboot集成钉钉
1.pom文件配置在resources/lib目录下加入钉钉的sdk的jar包。com.dingtalk.apidingtalk3.0.12system${project.basedir}/src/main/resources/lib/taobao-sdk-java-auto_1479188381469-20191122.jarmaven插件配置:org.springframework.boots
- SpringBoot 集成RabbitMQ 实现钉钉日报定时发送功能
风随心飞飞
SpringBoot+VUE系列springbootjava-rabbitmqrabbitmq
文章目录一、RabbitMq下载安装二、开发步骤:1.MAVEN配置2.RabbitMqConfig配置3.RabbitMqUtil工具类4.DailyDelaySendConsumer消费者监听5.测试延迟发送一、RabbitMq下载安装官网:https://www.rabbitmq.com/docs二、开发步骤:1.MAVEN配置org.springframework.bootspring-b
- SpringBoot集成DingTalk钉钉机器人实现消息同步/异步预警推送1.0版本
Jaemon
Jaemon教程类Java类库
V2.0版本新增支持以下功能新增Dinger层对消息对象配置指定钉钉机器人新增Dinger层统一管理消息对象,仅支持text和markdown格式支持xml方式配置支持注解方式配置新增关闭指定消息体和XXXDinger内定义的所有消息体SpringBoot集成DingTalk钉钉机器人实现消息同步/异步预警推送2.0版本开发环境说明JDK1.8springboot版本:2.0.3.RELEASE快
- YOLO系列之训练环境(GPU)搭建篇
w94ghz
YOLO改进系列YOLOv8改进系列YOLO深度学习人工智能python目标检测
YOLOv8专栏导航:点击此处跳转Pytorch环境配置(Windows)Anaconda安装此处下载安装即可⭐温馨提示:安装路径
- ASM系列四 利用Method 组件动态注入方法逻辑
lijingyao8206
字节码技术jvmAOP动态代理ASM
这篇继续结合例子来深入了解下Method组件动态变更方法字节码的实现。通过前面一篇,知道ClassVisitor 的visitMethod()方法可以返回一个MethodVisitor的实例。那么我们也基本可以知道,同ClassVisitor改变类成员一样,MethodVIsistor如果需要改变方法成员,注入逻辑,也可以
- java编程思想 --内部类
百合不是茶
java内部类匿名内部类
内部类;了解外部类 并能与之通信 内部类写出来的代码更加整洁与优雅
1,内部类的创建 内部类是创建在类中的
package com.wj.InsideClass;
/*
* 内部类的创建
*/
public class CreateInsideClass {
public CreateInsideClass(
- web.xml报错
crabdave
web.xml
web.xml报错
The content of element type "web-app" must match "(icon?,display-
name?,description?,distributable?,context-param*,filter*,filter-mapping*,listener*,servlet*,s
- 泛型类的自定义
麦田的设计者
javaandroid泛型
为什么要定义泛型类,当类中要操作的引用数据类型不确定的时候。
采用泛型类,完成扩展。
例如有一个学生类
Student{
Student(){
System.out.println("I'm a student.....");
}
}
有一个老师类
- CSS清除浮动的4中方法
IT独行者
JavaScriptUIcss
清除浮动这个问题,做前端的应该再熟悉不过了,咱是个新人,所以还是记个笔记,做个积累,努力学习向大神靠近。CSS清除浮动的方法网上一搜,大概有N多种,用过几种,说下个人感受。
1、结尾处加空div标签 clear:both 1 2 3 4
.div
1
{
background
:
#000080
;
border
:
1px
s
- Cygwin使用windows的jdk 配置方法
_wy_
jdkwindowscygwin
1.[vim /etc/profile]
JAVA_HOME="/cgydrive/d/Java/jdk1.6.0_43" (windows下jdk路径为D:\Java\jdk1.6.0_43)
PATH="$JAVA_HOME/bin:${PATH}"
CLAS
- linux下安装maven
无量
mavenlinux安装
Linux下安装maven(转) 1.首先到Maven官网
下载安装文件,目前最新版本为3.0.3,下载文件为
apache-maven-3.0.3-bin.tar.gz,下载可以使用wget命令;
2.进入下载文件夹,找到下载的文件,运行如下命令解压
tar -xvf apache-maven-2.2.1-bin.tar.gz
解压后的文件夹
- tomcat的https 配置,syslog-ng配置
aichenglong
tomcathttp跳转到httpssyslong-ng配置syslog配置
1) tomcat配置https,以及http自动跳转到https的配置
1)TOMCAT_HOME目录下生成密钥(keytool是jdk中的命令)
keytool -genkey -alias tomcat -keyalg RSA -keypass changeit -storepass changeit
- 关于领号活动总结
alafqq
活动
关于某彩票活动的总结
具体需求,每个用户进活动页面,领取一个号码,1000中的一个;
活动要求
1,随机性,一定要有随机性;
2,最少中奖概率,如果注数为3200注,则最多中4注
3,效率问题,(不能每个人来都产生一个随机数,这样效率不高);
4,支持断电(仍然从下一个开始),重启服务;(存数据库有点大材小用,因此不能存放在数据库)
解决方案
1,事先产生随机数1000个,并打
- java数据结构 冒泡排序的遍历与排序
百合不是茶
java
java的冒泡排序是一种简单的排序规则
冒泡排序的原理:
比较两个相邻的数,首先将最大的排在第一个,第二次比较第二个 ,此后一样;
针对所有的元素重复以上的步骤,除了最后一个
例题;将int array[]
- JS检查输入框输入的是否是数字的一种校验方法
bijian1013
js
如下是JS检查输入框输入的是否是数字的一种校验方法:
<form method=post target="_blank">
数字:<input type="text" name=num onkeypress="checkNum(this.form)"><br>
</form>
- Test注解的两个属性:expected和timeout
bijian1013
javaJUnitexpectedtimeout
JUnit4:Test文档中的解释:
The Test annotation supports two optional parameters.
The first, expected, declares that a test method should throw an exception.
If it doesn't throw an exception or if it
- [Gson二]继承关系的POJO的反序列化
bit1129
POJO
父类
package inheritance.test2;
import java.util.Map;
public class Model {
private String field1;
private String field2;
private Map<String, String> infoMap
- 【Spark八十四】Spark零碎知识点记录
bit1129
spark
1. ShuffleMapTask的shuffle数据在什么地方记录到MapOutputTracker中的
ShuffleMapTask的runTask方法负责写数据到shuffle map文件中。当任务执行完成成功,DAGScheduler会收到通知,在DAGScheduler的handleTaskCompletion方法中完成记录到MapOutputTracker中
- WAS各种脚本作用大全
ronin47
WAS 脚本
http://www.ibm.com/developerworks/cn/websphere/library/samples/SampleScripts.html
无意中,在WAS官网上发现的各种脚本作用,感觉很有作用,先与各位分享一下
获取下载
这些示例 jacl 和 Jython 脚本可用于在 WebSphere Application Server 的不同版本中自
- java-12.求 1+2+3+..n不能使用乘除法、 for 、 while 、 if 、 else 、 switch 、 case 等关键字以及条件判断语句
bylijinnan
switch
借鉴网上的思路,用java实现:
public class NoIfWhile {
/**
* @param args
*
* find x=1+2+3+....n
*/
public static void main(String[] args) {
int n=10;
int re=find(n);
System.o
- Netty源码学习-ObjectEncoder和ObjectDecoder
bylijinnan
javanetty
Netty中传递对象的思路很直观:
Netty中数据的传递是基于ChannelBuffer(也就是byte[]);
那把对象序列化为字节流,就可以在Netty中传递对象了
相应的从ChannelBuffer恢复对象,就是反序列化的过程
Netty已经封装好ObjectEncoder和ObjectDecoder
先看ObjectEncoder
ObjectEncoder是往外发送
- spring 定时任务中cronExpression表达式含义
chicony
cronExpression
一个cron表达式有6个必选的元素和一个可选的元素,各个元素之间是以空格分隔的,从左至右,这些元素的含义如下表所示:
代表含义 是否必须 允许的取值范围 &nb
- Nutz配置Jndi
ctrain
JNDI
1、使用JNDI获取指定资源:
var ioc = {
dao : {
type :"org.nutz.dao.impl.NutDao",
args : [ {jndi :"jdbc/dataSource"} ]
}
}
以上方法,仅需要在容器中配置好数据源,注入到NutDao即可.
- 解决 /bin/sh^M: bad interpreter: No such file or directory
daizj
shell
在Linux中执行.sh脚本,异常/bin/sh^M: bad interpreter: No such file or directory。
分析:这是不同系统编码格式引起的:在windows系统中编辑的.sh文件可能有不可见字符,所以在Linux系统下执行会报以上异常信息。
解决:
1)在windows下转换:
利用一些编辑器如UltraEdit或EditPlus等工具
- [转]for 循环为何可恨?
dcj3sjt126com
程序员读书
Java的闭包(Closure)特征最近成为了一个热门话题。 一些精英正在起草一份议案,要在Java将来的版本中加入闭包特征。 然而,提议中的闭包语法以及语言上的这种扩充受到了众多Java程序员的猛烈抨击。
不久前,出版过数十本编程书籍的大作家Elliotte Rusty Harold发表了对Java中闭包的价值的质疑。 尤其是他问道“for 循环为何可恨?”[http://ju
- Android实用小技巧
dcj3sjt126com
android
1、去掉所有Activity界面的标题栏
修改AndroidManifest.xml 在application 标签中添加android:theme="@android:style/Theme.NoTitleBar"
2、去掉所有Activity界面的TitleBar 和StatusBar
修改AndroidManifes
- Oracle 复习笔记之序列
eksliang
Oracle 序列sequenceOracle sequence
转载请出自出处:http://eksliang.iteye.com/blog/2098859
1.序列的作用
序列是用于生成唯一、连续序号的对象
一般用序列来充当数据库表的主键值
2.创建序列语法如下:
create sequence s_emp
start with 1 --开始值
increment by 1 --増长值
maxval
- 有“品”的程序员
gongmeitao
工作
完美程序员的10种品质
完美程序员的每种品质都有一个范围,这个范围取决于具体的问题和背景。没有能解决所有问题的
完美程序员(至少在我们这个星球上),并且对于特定问题,完美程序员应该具有以下品质:
1. 才智非凡- 能够理解问题、能够用清晰可读的代码翻译并表达想法、善于分析并且逻辑思维能力强
(范围:用简单方式解决复杂问题)
- 使用KeleyiSQLHelper类进行分页查询
hvt
sql.netC#asp.nethovertree
本文适用于sql server单主键表或者视图进行分页查询,支持多字段排序。KeleyiSQLHelper类的最新代码请到http://hovertree.codeplex.com/SourceControl/latest下载整个解决方案源代码查看。或者直接在线查看类的代码:http://hovertree.codeplex.com/SourceControl/latest#HoverTree.D
- SVG 教程 (三)圆形,椭圆,直线
天梯梦
svg
SVG <circle> SVG 圆形 - <circle>
<circle> 标签可用来创建一个圆:
下面是SVG代码:
<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
<circle cx="100" c
- 链表栈
luyulong
java数据结构
public class Node {
private Object object;
private Node next;
public Node() {
this.next = null;
this.object = null;
}
public Object getObject() {
return object;
}
public
- 基础数据结构和算法十:2-3 search tree
sunwinner
Algorithm2-3 search tree
Binary search tree works well for a wide variety of applications, but they have poor worst-case performance. Now we introduce a type of binary search tree where costs are guaranteed to be loga
- spring配置定时任务
stunizhengjia
springtimer
最近因工作的需要,用到了spring的定时任务的功能,觉得spring还是很智能化的,只需要配置一下配置文件就可以了,在此记录一下,以便以后用到:
//------------------------定时任务调用的方法------------------------------
/**
* 存储过程定时器
*/
publi
- ITeye 8月技术图书有奖试读获奖名单公布
ITeye管理员
活动
ITeye携手博文视点举办的8月技术图书有奖试读活动已圆满结束,非常感谢广大用户对本次活动的关注与参与。
8月试读活动回顾:
http://webmaster.iteye.com/blog/2102830
本次技术图书试读活动的优秀奖获奖名单及相应作品如下(优秀文章有很多,但名额有限,没获奖并不代表不优秀):
《跨终端Web》
gleams:http