前端里移动端到底比pc端多哪些知识,为啥面试时好多公司都问h5

我做过几年的 web 前端开发,就简单谈谈自己的感受吧。

首先来看看 PC 端和移动端在前端开发上的一些区别:

1 PC 考虑的是浏览器兼容性,移动端开发考虑的更多的是手机兼容性,因为目前不管是 android 手机还是 ios 手机,一般浏览器用的都是 webkit 内核,所以做移动端开发,更多考虑的应该是手机分辨率的适配,和不同操作系统的略微差异化;

2 )在部分事件的处理上,移动端自然是偏向于触屏的,所以触屏事件的一些规律要多摸索一下,另外包括移动端弹出的手机键盘该如何处理,这样的问题在 PC 上肯定不会遇到,但在移动端,如果你没有经验,处理起来是相当麻烦的;

3 )在布局上,移动端开发一般是要做到布局自适应的,在这里我推荐用 rem 的解决方案,具体实现可以百度一下,相对比较简单,处理起来也比较灵活;

4 )在动画处理上, PC 端由于要考虑到 IE 的兼容性,通常用 JS 做动画的通用性会好一些,但相比 CSS3 却牺牲了较大的性能,而在手机端,如果要做一些动画、特效等,第一选择肯定是 CSS3 ,既简单,效率又高。

区别就说到这里,也许还不完全,我也是想到哪就说到哪,下面来谈谈如果要做移动端的 web 开发,也就是题主说的 h5 开发,在已有 PC 端的 web 开发基础上,还需要再研究哪些技术:

1 )微信的一些接口最好都能去实现一遍,熟悉一下肯定有好处的,比如领导让你通过微信分享的文章, title description 、以及 icon 图标怎么配置,你说你不清楚,那就太水了;

2 )百度地图的一些 API 接口,有时间也去熟悉一下吧,对于移动端来讲, LBS 还是一个非常重要的特性,所以地图这块肯定也是需要了解的,再加上百度地图已经是一个比较成熟的平台了,学起来也不费事儿的;

3 CSS3 的动画去熟悉一下,至少最基本的一些动画实现和算法要了解,在移动端应该也算用得比较多的;

4 )一般 pc jquery ,移动端用 zepto ,这没什么好说的,在这里主要是想提醒大家,移动端的流量相对还是比较重要的,所以引入的资源或插件,能小则小,一个 30k 的资源和 80k 的资源,在移动端还是相差挺大的;

5)最好能掌握一套完整的前端开发架构,比如模块化、打包、压缩、缓存、发布,有条件的还能做一下自动化测试等等,我用过的有fis,还不错,牛逼的朋友可以自己写一套,另外再多说一句,如果想快速提升自己的前端开发技术,钻研前端架构这块是一个非常好的方向。

想跟我沟通的可以加Q2220782523


  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在后端判断当前请求的发起是移动端H5还是PC端发起,可以通过检查请求头(User-Agent)中的信息来进行判断。User-Agent是一个HTTP请求头字段,它包含了客户端(浏览器、移动应用等)的相关信息。 以下是一种基本的方法来判断当前请求是移动端H5还是PC端发起的: ```java import javax.servlet.http.HttpServletRequest; public class RequestUtil { public static boolean isMobile(HttpServletRequest request) { String userAgent = request.getHeader("User-Agent"); // 根据User-Agent判断是否为移动端 // 例如判断是否包含"Mobile"关键字 return userAgent != null && userAgent.contains("Mobile"); } } ``` 在上述示例中,通过`request.getHeader("User-Agent")`方法获取请求头中的User-Agent信息,然后根据特定的规则判断是否为移动端。这只是一个简单的示例,实际判断逻辑可能需要更加复杂的正则表达式或其他方式。 你可以在Controller中使用`RequestUtil.isMobile(request)`方法来判断当前请求是否为移动端,从而根据不同的情况进行相应的处理。 ```java @RestController public class MyController { @PostMapping("/myEndpoint") public ResponseEntity<String> myEndpoint(HttpServletRequest request) { if (RequestUtil.isMobile(request)) { // 处理移动端请求逻辑 } else { // 处理PC端请求逻辑 } return ResponseEntity.ok("Success"); } } ``` 需要注意的是,User-Agent可以被客户端自由修改,因此不能完全依赖User-Agent来确定请求的发起方。在某些情况下,可能需要结合其他的方式进行判断,例如根据请求的URL、请求参数等综合判断。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值