- 纯前端实现「羊了个羊」小游戏(附源码)
软件技术NINI
趣味源码前端
实现一个类似于「羊了个羊」的纯前端小游戏是一个相对复杂的项目,因为它涉及许多前端技术和游戏逻辑。以下是一个简要的步骤指南,帮助你入门并实现这个项目。由于篇幅限制,这里只提供一个基础框架和一些关键点的实现思路。准备工作工具选择:使用一个现代的前端框架,如React、Vue或Angular。这里以React为例。使用CSS或预处理器(如Sass)进行样式管理。使用状态管理库(如Redux)管理游戏状态
- 关于Transparent native-to-ascii conversion
tkgup
ide
1、功能自动转换ASCII编码,即在文件系统上,文件的编码格式为ascii编码,在编辑器(idea/pycharm)中,其展现结果为配置的编码格式,仅展现方便阅读使用UTF-8并勾选自动转换ASCII编码结果:1、notepad/记事本中,显示为\u68D2\u68D22、git仓库中,显示为\u68D2\u68D23、编辑器IDEA中,显示为棒棒2、坑在pycharm2022.3.3版本中,其它
- 第五十五:计算属性 computed
小画家~
前端前端javascriptvue.js
add:{{add()}}add:{{add()}}sum:{{sum}}sum:{{sum}}xyjsimport{createApp,reactive,computed}from'./vue.esm-browser.js'createApp({setup(){constdata=reactive({x:10,y:20})//方法-无缓存letadd=()=>{console.log("add"
- 第五十:使用Axios实现文章搜索案例 动态属性绑定 v-bind 简写:与 Axios get post 请求
小画家~
前端vue.jsjavascript前端
value="dengruicode.com"v-bind:value="web.url"简写:value="web.url"src="windows.jpg":src="web.img"class="textColor"邓瑞编程:class="{textColor:web.fontStatus}"dengruicode.comjsimport{createApp,reactive}from'./
- jedis,lettuce,redisson对比
虎哥和你一起学编程
redis
jedis是一个老牌的java的redis客户端,仅支持同步的方式连接,redis官网有一句这样的话JedisisasynchronousJavaclientforRedis.UseLettuceifyouneedamoreadvancedJavaclientthatalsosupportsasynchronousandreactiveconnections。官方也推荐如果需要异步或者响应式的支持
- React Hooks 完全指南:从入门到精通
斯~内克
react知识点react.jsjavascript前端
一、Hooks的革命性意义1.1为什么需要Hooks?类组件痛点:根据2024年React开发者调查报告,87%的开发者认为生命周期方法难以理解,尤其是componentDidUpdate的复杂逻辑逻辑复用困境:传统HOC和RenderProps模式导致组件嵌套地狱(NestingHell)性能优化难题:类组件难以精细控制重渲染,shouldComponentUpdate优化成本高代码组织混乱:相
- MySQL的 int , bigint字段与java的 int , long 字段反射/映射时,产生的问题
劲雨波
MySQLJavamavenjavamysql开发语言
针对java连接mysql数据库映射时产生的问题java.lang.IllegalArgumentException:argumenttypemismatchatsun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod)总结了一下是字段类型不匹配的问题,整理了一下表格intMySQL无符号(unsigned)Javaint原本(未选择无符号
- 测试类中无法注入(找不到此bean)
一个想打代码的yebadi_
错误点单元测试springboot
今天打开了一个项目进行方法测试的时候出现了一个错误。java.lang.NullPointerExceptionattest.example.Test1.test2(Test1.java:29)atjava.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod)atjava.base/jdk.internal
- linux替换原有java
javalinux云服务器
替换Linux系统中的Java版本看似是一个复杂的过程,但其实只要按照一定的步骤来进行,就可以简单地完成这个操作。流程总览下面提供了一个关于如何替换Java版本的流程表:步骤任务1确认当前Java版本2安装新的Java版本3配置Java环境变量4更新Javaalternatives5验证更换后的Java版本各步骤详细说明步骤1:确认当前Java版本在终端中运行以下命令,以检查当前安装的Java版本
- React进阶之前端业务Hooks库(三)
VillanelleS
react.js前端前端框架
前端业务Hooks库hooks方法localStorage和sessionStorager区别packages/hooks/src/useLocalStorageStatepackages/hooks/src/useSessionStorageStatepackages/hooks/src/createUseStorageState模块Hooks在不同场景下的应用Hooks陷阱前提例子useLat
- React进阶之前端业务Hooks库(四)
VillanelleS
react.js前端前端框架
前端业务Hooks库其他功能的hook针对domuseClickAwayuseDocumentVisibilityuseEventListeneruseMutationObserveruseResponsive结合组件库(antdesign,elementui)其他功能的hook针对dom合理的使用useLatest,useMemoizedFn,能够保证组件的更新是不发生不必要的变化的。后续在个人
- 探秘React:构建现代界面的利器
ai_todo
从0到0.01入门Reactreact.js前端前端框架
文章目录React是一个用于构建用户界面的JavaScript库1.组件化开发2.JSX语法3.虚拟DOM4.单向数据流5.组件生命周期6.状态管理7.ReactRouter8.生态系统9.兼容性和跨平台vue3和react的异同点vue3和react的语法上的异同点附录:「简历必备」前后端实战项目(推荐:⭐️⭐️⭐️⭐️⭐️)「作者简介」:不知名十八线技术博主「推荐主页」:阿珊和她的猫「简历必备
- Wpf-ReactiveUI-Usercontrol交互
晓纪同学
C#技巧总结wpf交互
文章目录1、使用属性绑定UserControl部分(MyUserControl.xaml.cs)UserControl视图模型部分(MyUserControlViewModel.cs)主界面部分(MainWindow.xaml)主界面视图模型部分(MainWindowViewModel.cs)2、使用消息传递UserControl视图模型部分(MyUserControlViewModel.cs)主
- 利用React 自定义Hooks实现业务逻辑复用实例
2401_84152092
程序员react.jsjavascript前端
首先我们定义需要的states://PostsAndTodos.jsconst[posts,setPosts]=useState([]);const[isPostsLoading,setIsPostsLoading]=useState();const[todos,setTodos]=useState([]);const[isTodosLoading,setIsTodosLoading]=useSt
- React进阶之前端业务Hooks库(六)
VillanelleS
react.js状态模式前端
前端业务Hooks库请求useRequest题外:主流大厂编码规范的要求:目录详解useRequest.tsuseRequestImplement.tsFetch.ts插件的实现src/useRetryPlugin.tssrc/useAutoRunPlugin.ts请求失败的日志上报请求useRequest为什么不使用axios而使用useRequest因为axios在vue项目中使用的确频繁,而
- React Refs:深入理解与最佳实践
froginwe11
开发语言
ReactRefs:深入理解与最佳实践引言在React中,refs是用于访问DOM元素或组件实例的一种方式。与类组件的ref属性不同,函数组件的ref需要使用useRef钩子。正确使用refs可以大大提升React应用的性能和可维护性。本文将深入探讨ReactRefs的原理、用法以及最佳实践。Refs的原理React的refs是一个对DOM节点或组件实例的引用,它允许我们直接访问DOM节点或组件实
- 第五十四:渲染数据 v-text 和 v-html
小画家~
前端html前端javascript
v-text:解析成文本v-html:解析成html{{web.title}}jsimport{createApp,reactive}from'./vue.esm-browser.js'createApp({setup(){constweb=reactive({title:"邓瑞编程",url:"www.dengruicode.com"})return{web}}}).mount("#app")
- React-redux使用教程_react使用redux
2401_87034159
react.js前端前端框架
NPMnpminstall@reduxjs/toolkitYarnyarnadd@reduxjs/toolkit###2.创建一个ReactRedux应用官方推荐的使用React和Redux创建新应用的方式是使用 [官方Redux+JS模版]()或 [Redux+TS模板](),它基于 [CreateReactApp](),利用了 **[ReduxToolkit]()** 和Redux与React
- 武汉前端面试(1)
Nueuis
前端
面一:vue2和vue3的响应式原理比较?vue2通过object.defineProperty对对象的每个属性进行劫持,会遍历对象的每一个属性,使用getter和setter,只能监听部分方法vue3是基于Proxy代理整个对象,不是逐个属性监听,可以监听新增属性和删除属性,使用reactive函数返回通过proxy创建的代理对象,vue3使用proxy的优点:支持新增和删除属性的响应式可以监听
- React 之 Redux 第二十八节 学习目标与规划大纲及概要讲述
刺客-Andy
Reactreact.js前端前端框架
接下来开始Redux全面详细的文档输出,主要基于一下几个方面,欢迎大家补充指正一、Redux基础概念为什么需要Redux?前端状态管理的挑战(组件间通信、状态共享)Redux解决的问题:集中式、可预测的状态管理适用场景(复杂应用、多组件交互)Redux三大核心原则单一数据源(SingleSourceofTruth)状态只读(StateisRead-Only,通过Action修改)纯函数修改(Red
- 微前端架构
qmwneb946
科技博文前端框架
1.微前端架构概述1.1定义与核心概念微前端架构是一种现代Web应用的架构风格,它借鉴了微服务的理念,将前端应用分解为一组小型的、独立交付的前端应用,每个应用可以独立开发、独立部署,并且可以由不同的团队使用不同的技术栈进行开发。微前端架构的核心概念包括:独立性:每个前端应用都是独立的,拥有自己的代码库、开发流程和部署周期。技术多样性:不同的前端应用可以使用不同的技术栈,如React、Vue、Ang
- ReactNative组件详解
Code4Android
编程语言androidiosreact-native
ReactNative学习记录传送门ReactNative核心思想就是组件化,它基于前端框架React,在我们使用其开发Android和iOS的时候,共用一套组件即一套代码,增加了代码复用性。今天的这篇文章不不分析过多的知识点,主要介绍如下内容:如何进行自定义组件如何使用自定义组件组件的生命周期自定义组件ReactNative中我们实现的UI都是有组件组成的,但是有时候为了实现我们想要的效果,并且
- React入门简介
地信小学生
WebGIS一起学react.js前端前端框架javascript
Vue与React是前端编程中常用的两个JS框架,两者的一些简单如下所示。Vue建立在一个基于组件的架构上,以组件为中心,可以更轻松地创建动态用户界面。它还有一个强大的双向数据绑定系统,可以让我们轻松地保持数据和用户界面同步;Vue轻量、灵活且强大,最重要的是对于初学者来说相对简单。Vue中文官网包含了详细的说明与教程:https://cn.vuejs.org/React为开发人员提供了一种声明式
- react 基础
理想和远方_在路上
react.jsjsx
一.什么是react?react是一种用于构建用户界面的javaScript库react主要用来写html,或构建web应用如果用mvc的角度来看,react仅仅是视图层(v),也就是只负责视图的渲染,并不是提供了完成的M和C的功能。二.react的特点1.声明式只需要描述html看起来是什么样,就跟写html一样。react负责渲染UI,并在数据变化是更新UI。constjsx=HelloRea
- 使用react-native-vector-icons
孟宪磊mxl
reactnativereact.jsjavascript
ReactNativeVectorIcons是一个在GitHub上非常受欢迎的ReactNative图标库。它提供了许多常见的图标集,如FontAwesome和Ionicons等。使用这个库可以简化在ReactNative项目中使用图标的过程。一、安装npminstallreact-native-vector-icons二、配置环境(android)1.打开android/app/build.gr
- Reac19 升级指南
Geek技术前线
react.js前端前端框架
Reactv19已经发布beta版本,想要快速体验如何升级到v19版本尝鲜的朋友们可以查阅进行了解前言React已于近日发布了v19的beta版本,同时为了帮助后续的v19升级,也同时发布了v18.3.0的正式版,与v18.2版本完全相同,但添加了弃用API的警告和其他为React19所需的更改安装使用新版JSXTransform为了改善打包体积和可以在JSX文件中无需手动引入React,在202
- 【React全解】React起手式
caihuayuan4
面试题汇总与解析springsqljava大数据
如何引入React从bootcdn引入React按顺序引入React然后引入ReactDOMCommonJSVSUMD规范JavaScript的模块定义和加载机制,降低了学习和使用各种框架的门槛,能够以一种统一的方式去定义和使用模块,提高开发效率,降低了应用维护成本CommonJSCommonJS是一种规范,NodeJS是这种规范的实现CommonJS模块是对象,是运行时加载,运行时才把模块挂载在
- ReactNative fetch源码分析
郝捷Laxus
ReactNative
原生分析的是安卓端核心代码//react-native/vendor/core/wehatwg-fetch.jsself.fetch=function(input,init){returnnewPromise(function(resolve,reject){varrequest=newRequest(input,init);varxhr=newXMLHttpRequest();xhr.onloa
- React Native 新架构,前端开发框架
2401_83974173
2024年程序员学习reactnative架构react.js
JSthread会先对其序列化,形成下面一条消息UIManager.createView([343,“RCTView”,31,{“backgroundColor”:-16181,“width”:200,“height”:200}])通过Bridge发到ShadowThread。ShadowTread接收到这条信息后,先反序列化,形成Shadowtree,然后传给Yoga,形成原生布局信息。接着又通
- vector push_back 时间复杂度分析
Bob__yuan
#面试题#C++
《C++程序设计语言》第4部分:标准库,里边写vector,第一句如下:TheSTLvectoristhedefaultcontainer.Useitunlessyouhaveagoodreasonnotto.Ifyoursuggestedalternativeisalistorbuilt-inarray,thinktwice. vector确实是非常常用,比较基础,不想其他花里胡哨的con
- 统一思想认识
永夜-极光
思想
1.统一思想认识的基础,才能有的放矢
原因:
总有一种描述事物的方式最贴近本质,最容易让人理解.
如何让教育更轻松,在于找到最适合学生的方式.
难点在于,如何模拟对方的思维基础选择合适的方式. &
- Joda Time使用笔记
bylijinnan
javajoda time
Joda Time的介绍可以参考这篇文章:
http://www.ibm.com/developerworks/cn/java/j-jodatime.html
工作中也常常用到Joda Time,为了避免每次使用都查API,记录一下常用的用法:
/**
* DateTime变化(增减)
*/
@Tes
- FileUtils API
eksliang
FileUtilsFileUtils API
转载请出自出处:http://eksliang.iteye.com/blog/2217374 一、概述
这是一个Java操作文件的常用库,是Apache对java的IO包的封装,这里面有两个非常核心的类FilenameUtils跟FileUtils,其中FilenameUtils是对文件名操作的封装;FileUtils是文件封装,开发中对文件的操作,几乎都可以在这个框架里面找到。 非常的好用。
- 各种新兴技术
不懂事的小屁孩
技术
1:gradle Gradle 是以 Groovy 语言为基础,面向Java应用为主。基于DSL(领域特定语言)语法的自动化构建工具。
现在构建系统常用到maven工具,现在有更容易上手的gradle,
搭建java环境:
http://www.ibm.com/developerworks/cn/opensource/os-cn-gradle/
搭建android环境:
http://m
- tomcat6的https双向认证
酷的飞上天空
tomcat6
1.生成服务器端证书
keytool -genkey -keyalg RSA -dname "cn=localhost,ou=sango,o=none,l=china,st=beijing,c=cn" -alias server -keypass password -keystore server.jks -storepass password -validity 36
- 托管虚拟桌面市场势不可挡
蓝儿唯美
用户还需要冗余的数据中心,dinCloud的高级副总裁兼首席营销官Ali Din指出。该公司转售一个MSP可以让用户登录并管理和提供服务的用于DaaS的云自动化控制台,提供服务或者MSP也可以自己来控制。
在某些情况下,MSP会在dinCloud的云服务上进行服务分层,如监控和补丁管理。
MSP的利润空间将根据其参与的程度而有所不同,Din说。
“我们有一些合作伙伴负责将我们推荐给客户作为个
- spring学习——xml文件的配置
a-john
spring
在Spring的学习中,对于其xml文件的配置是必不可少的。在Spring的多种装配Bean的方式中,采用XML配置也是最常见的。以下是一个简单的XML配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.or
- HDU 4342 History repeat itself 模拟
aijuans
模拟
来源:http://acm.hdu.edu.cn/showproblem.php?pid=4342
题意:首先让求第几个非平方数,然后求从1到该数之间的每个sqrt(i)的下取整的和。
思路:一个简单的模拟题目,但是由于数据范围大,需要用__int64。我们可以首先把平方数筛选出来,假如让求第n个非平方数的话,看n前面有多少个平方数,假设有x个,则第n个非平方数就是n+x。注意两种特殊情况,即
- java中最常用jar包的用途
asia007
java
java中最常用jar包的用途
jar包用途axis.jarSOAP引擎包commons-discovery-0.2.jar用来发现、查找和实现可插入式接口,提供一些一般类实例化、单件的生命周期管理的常用方法.jaxrpc.jarAxis运行所需要的组件包saaj.jar创建到端点的点到点连接的方法、创建并处理SOAP消息和附件的方法,以及接收和处理SOAP错误的方法. w
- ajax获取Struts框架中的json编码异常和Struts中的主控制器异常的解决办法
百合不是茶
jsjson编码返回异常
一:ajax获取自定义Struts框架中的json编码 出现以下 问题:
1,强制flush输出 json编码打印在首页
2, 不强制flush js会解析json 打印出来的是错误的jsp页面 却没有跳转到错误页面
3, ajax中的dataType的json 改为text 会
- JUnit使用的设计模式
bijian1013
java设计模式JUnit
JUnit源代码涉及使用了大量设计模式
1、模板方法模式(Template Method)
定义一个操作中的算法骨架,而将一些步骤延伸到子类中去,使得子类可以不改变一个算法的结构,即可重新定义该算法的某些特定步骤。这里需要复用的是算法的结构,也就是步骤,而步骤的实现可以在子类中完成。
- Linux常用命令(摘录)
sunjing
crondchkconfig
chkconfig --list 查看linux所有服务
chkconfig --add servicename 添加linux服务
netstat -apn | grep 8080 查看端口占用
env 查看所有环境变量
echo $JAVA_HOME 查看JAVA_HOME环境变量
安装编译器
yum install -y gcc
- 【Hadoop一】Hadoop伪集群环境搭建
bit1129
hadoop
结合网上多份文档,不断反复的修正hadoop启动和运行过程中出现的问题,终于把Hadoop2.5.2伪分布式安装起来,跑通了wordcount例子。Hadoop的安装复杂性的体现之一是,Hadoop的安装文档非常多,但是能一个文档走下来的少之又少,尤其是Hadoop不同版本的配置差异非常的大。Hadoop2.5.2于前两天发布,但是它的配置跟2.5.0,2.5.1没有分别。 &nb
- Anychart图表系列五之事件监听
白糖_
chart
创建图表事件监听非常简单:首先是通过addEventListener('监听类型',js监听方法)添加事件监听,然后在js监听方法中定义具体监听逻辑。
以钻取操作为例,当用户点击图表某一个point的时候弹出point的name和value,代码如下:
<script>
//创建AnyChart
var chart = new AnyChart();
//添加钻取操作&quo
- Web前端相关段子
braveCS
web前端
Web标准:结构、样式和行为分离
使用语义化标签
0)标签的语义:使用有良好语义的标签,能够很好地实现自我解释,方便搜索引擎理解网页结构,抓取重要内容。去样式后也会根据浏览器的默认样式很好的组织网页内容,具有很好的可读性,从而实现对特殊终端的兼容。
1)div和span是没有语义的:只是分别用作块级元素和行内元素的区域分隔符。当页面内标签无法满足设计需求时,才会适当添加div
- 编程之美-24点游戏
bylijinnan
编程之美
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Random;
import java.util.Set;
public class PointGame {
/**编程之美
- 主页面子页面传值总结
chengxuyuancsdn
总结
1、showModalDialog
returnValue是javascript中html的window对象的属性,目的是返回窗口值,当用window.showModalDialog函数打开一个IE的模式窗口时,用于返回窗口的值
主界面
var sonValue=window.showModalDialog("son.jsp");
子界面
window.retu
- [网络与经济]互联网+的含义
comsci
互联网+
互联网+后面是一个人的名字 = 网络控制系统
互联网+你的名字 = 网络个人数据库
每日提示:如果人觉得不舒服,千万不要外出到处走动,就呆在床上,玩玩手游,更不能够去开车,现在交通状况不
- oracle 创建视图 with check option
daizj
视图vieworalce
我们来看下面的例子:
create or replace view testview
as
select empno,ename from emp where ename like ‘M%’
with check option;
这里我们创建了一个视图,并使用了with check option来限制了视图。 然后我们来看一下视图包含的结果:
select * from testv
- ToastPlugin插件在cordova3.3下使用
dibov
Cordova
自己开发的Todos应用,想实现“
再按一次返回键退出程序 ”的功能,采用网上的ToastPlugins插件,发现代码或文章基本都是老版本,运行问题比较多。折腾了好久才弄好。下面吧基于cordova3.3下的ToastPlugins相关代码共享。
ToastPlugin.java
package&nbs
- C语言22个系统函数
dcj3sjt126com
cfunction
C语言系统函数一、数学函数下列函数存放在math.h头文件中Double floor(double num) 求出不大于num的最大数。Double fmod(x, y) 求整数x/y的余数。Double frexp(num, exp); double num; int *exp; 将num分为数字部分(尾数)x和 以2位的指数部分n,即num=x*2n,指数n存放在exp指向的变量中,返回x。D
- 开发一个类的流程
dcj3sjt126com
开发
本人近日根据自己的开发经验总结了一个类的开发流程。这个流程适用于单独开发的构件,并不适用于对一个项目中的系统对象开发。开发出的类可以存入私人类库,供以后复用。
以下是开发流程:
1. 明确类的功能,抽象出类的大概结构
2. 初步设想类的接口
3. 类名设计(驼峰式命名)
4. 属性设置(权限设置)
判断某些变量是否有必要作为成员属
- java 并发
shuizhaosi888
java 并发
能够写出高伸缩性的并发是一门艺术
在JAVA SE5中新增了3个包
java.util.concurrent
java.util.concurrent.atomic
java.util.concurrent.locks
在java的内存模型中,类的实例字段、静态字段和构成数组的对象元素都会被多个线程所共享,局部变量与方法参数都是线程私有的,不会被共享。
- Spring Security(11)——匿名认证
234390216
Spring SecurityROLE_ANNOYMOUS匿名
匿名认证
目录
1.1 配置
1.2 AuthenticationTrustResolver
对于匿名访问的用户,Spring Security支持为其建立一个匿名的AnonymousAuthenticat
- NODEJS项目实践0.2[ express,ajax通信...]
逐行分析JS源代码
Ajaxnodejsexpress
一、前言
通过上节学习,我们已经 ubuntu系统搭建了一个可以访问的nodejs系统,并做了nginx转发。本节原要做web端服务 及 mongodb的存取,但写着写着,web端就
- 在Struts2 的Action中怎样获取表单提交上来的多个checkbox的值
lhbthanks
javahtmlstrutscheckbox
第一种方法:获取结果String类型
在 Action 中获得的是一个 String 型数据,每一个被选中的 checkbox 的 value 被拼接在一起,每个值之间以逗号隔开(,)。
所以在 Action 中定义一个跟 checkbox 的 name 同名的属性来接收这些被选中的 checkbox 的 value 即可。
以下是实现的代码:
前台 HTML 代码:
- 003.Kafka基本概念
nweiren
hadoopkafka
Kafka基本概念:Topic、Partition、Message、Producer、Broker、Consumer。 Topic: 消息源(Message)的分类。 Partition: Topic物理上的分组,一
- Linux环境下安装JDK
roadrunners
jdklinux
1、准备工作
创建JDK的安装目录:
mkdir -p /usr/java/
下载JDK,找到适合自己系统的JDK版本进行下载:
http://www.oracle.com/technetwork/java/javase/downloads/index.html
把JDK安装包下载到/usr/java/目录,然后进行解压:
tar -zxvf jre-7
- Linux忘记root密码的解决思路
tomcat_oracle
linux
1:使用同版本的linux启动系统,chroot到忘记密码的根分区passwd改密码 2:grub启动菜单中加入init=/bin/bash进入系统,不过这时挂载的是只读分区。根据系统的分区情况进一步判断. 3: grub启动菜单中加入 single以单用户进入系统. 4:用以上方法mount到根分区把/etc/passwd中的root密码去除 例如: ro
- 跨浏览器 HTML5 postMessage 方法以及 message 事件模拟实现
xueyou
jsonpjquery框架UIhtml5
postMessage 是 HTML5 新方法,它可以实现跨域窗口之间通讯。到目前为止,只有 IE8+, Firefox 3, Opera 9, Chrome 3和 Safari 4 支持,而本篇文章主要讲述 postMessage 方法与 message 事件跨浏览器实现。postMessage 方法 JSONP 技术不一样,前者是前端擅长跨域文档数据即时通讯,后者擅长针对跨域服务端数据通讯,p