项目新的需求,网页的自适应交付/响应式交付 Responsive/Adaptive Delivery

网页为什么要做自适应交付,皆因现在移动设备大行其道,现在是移动互联网时代,以IOS及Android为首的各种移动终端已经遍地开花。

当人家用380px的iphone打开你的网页时,你总不能显示个1024px的页面给人家,用户体验大打折购,因为响应式设计或者自适应交付就应运而生。

之前已经提到过响应式设计(responsive design),但响应式设计有个重点就是不管3721,全部资源(html,css,js)统统加载下来,页面比较冗肿;而响应式的交付,完美的响应式交付是服务器跟据访问者的设备终端,动态交付相应html、css、js资源,全部是实实在在的东西,没有多余的代码或者资源。据说ASP.NET MVC 4可以轻松实现此功能,当然服务端动态response.write也可以动态拼了页面,但工作量大啊!后端人家也不肯……。

无奈,项目紧迫,说服PM用的目前比较流行的伪响应式交付的方式,用页面的重定向(redirect) 与页面cookie控制相结合

需求:

一、设计2套模版,一个是平板电脑/桌面端 模板(www.yoursite.com),另一个是手机端(www.yoursite.com/mobile 作为子站) 模板

二、响应式交付

full site页面顶部加入如下JS代码

var useragent = window.navigator.userAgent.toLowerCase();
var currenturl = window.location.href.toLowerCase();
var targetSite = getCookie(‘targetSite‘);

if (targetSite == ‘‘ || targetSite == null || targetSite == ‘mobile‘)
{
    if(useragent.indexOf(‘ipad‘) == -1 && useragent.indexOf(‘mobile‘) != -1)
    {
        {
            var newUrl = currenturl.toLowerCase().replace(‘www.yoursite.com‘, ‘www.yoursite.com/mobile‘);
            setCookie(‘targetSite‘, ‘mobile‘,‘/‘);
            if (currenturl.indexOf(‘/mobile/‘) == -1) {
                window.location.href = newUrl;
            }
         }      

     }
}
/*****
cookies
 *****/
function setCookie(name, value, path) {
    var date = new Date();
    date.setTime(date.getTime() + 0.5 * 24 * 3600 * 1000);//cookie lasts half of a day.
    var p = "";
    if (path) {
        p = ";path=" + path;
    }
    document.cookie = name + "=" + escape(value) + ";expires=" + date.toGMTString() + p;
}

function getCookie(name)
{
    var arr = document.cookie.match(new RegExp("(^| )" + name + "=([^;]*)(;|$)"));
    if (arr != null)
        return unescape(arr[2]);
    return null;
}
function delCookie(name)
{
    var exp = new Date();
    exp.setTime(exp.getTime() - 1);
    var cval = getCookie(name);
    if (cval != null)
        document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString();
}

在mobile site,相应要有选择跳到full site的链接,那要加上cookie控制

function redirectFullUrl() {
    var currenturl = window.location.href.toLowerCase();
    delCookie("targetSite");
    SetCookieForSiteTarget("TargetSite", "full", "/");
    var newUrl = currenturl.toLowerCase().replace(‘www.yoursite.com/mobile‘, ‘www.yoursite.com‘);
    window.location.href = newUrl;
}

这样就OK啦,原理比较简单,主要通过控制cookie来引导,当然你full site与mobile site的页面所有相应要严格对得上

项目新的需求,网页的自适应交付/响应式交付 Responsive/Adaptive Delivery

时间: 2024-08-03 08:38:37

项目新的需求,网页的自适应交付/响应式交付 Responsive/Adaptive Delivery的相关文章

普通网页怎么改成响应式布局

1 – 布局 当创建一个响应式网站,或让现有的网站变成响应式的,首先要关注的元素的布局.我在建立响应式的网站,总是先创建一个非响应的布局,页面宽度固定大小.如果非响应版本完成得非常不错,我再添加媒体查询(Media Queries)和响应式代码.这种操作方式更容易实现响应式特性,在同一时间专注于一个任务. 当你已经完成了无响应的网站,做的第一件事是在你的 HTML 页面,粘贴下面的代码到<head>和</head>标签之间.这将设置屏幕按1:1的尺寸显示,在 iPhone 和其他智

浅谈移动端的自适应问题——响应式、rem/em、利用Js动态实现移动端自适应

随着3G的普及,越来越多的人使用手机上网.移动设备正超过桌面设备,成为访问互联网的最常见终端.于是,网页设计师不得不面对一个难题:如何才能在不同大小的设备上呈现同样的网页?本篇文章将讲述自适应网页设计的概念和方法,使网页开发人员维护同一个网页代码,即可使网站在多种设备上具有更好的阅读体验.本文详细介绍了自适应网页的实现方法,希望能给迷惑的你带来帮助. 一. 在HTML的头部加入meta标签 在HTML的头部,也就是head标签中增加meta标签,告诉浏览器网页宽度等于设备屏幕宽度,且不进行缩放,

移动端网页meta设置和响应式

苏宁易购WAP的meta分析 响应式 meta设置 媒体查询时读的width为viewport的宽度.viewport宽度为手机分辨率.比如note2 1280*720.需要重置为设备 640*360 方式 类型 css javascript 原理 媒体查询宽.高范围.设置html的font-size基准值 (window.innerWidth/psd的初始化宽度)*psd的初始font-size.算出当前网页的font-size.赋给html 特征 优点: 纯css解决 缺点: 需要在页面渲染

未来网页设计的趋势——响应式设计图标

说实话,第一次听到"响应式图标"我也觉得怪怪的,正如不久之前,人们为了让图标字体更适合不同设备,而更改它们的大小一样,但是这一想法却让响应式设计以及图标设计有了长足的进步. 他是什么? 响应式设计图标并不是说图标大小会随屏幕尺寸的变动而改变,而是意味着图标会根据自己所处何种设备来改变自身大小.这就意味着屏幕尺寸对图标来说不是那么重要了,因为它能自动调节,它可以变大变小--同一时间,同一屏幕.图标的设计上的差别不会太明显,一般都是细节问题.详细请看下图: 响应式设计图标很重要吗? 随着字

响应式布局-图片、自适应与响应式

响应式布局: 1.保有足够的留白,但也几乎不浪费屏幕面积 2.该考虑的内容:@百分比的布局以及em布局,随屏幕宽度变化的间距 @文本换行 @图片需被替换或允许缩放 @忍受一个不再完美的设计 自适应布局: 1.可在每个突变点上,为内容区域设置一个最大宽度,然后将外间距扩张直至匹配到下一个突变点 搜索框: <input type="search" > 优点: @移动浏览器可以更改所显示的键盘 @添加一个图标 @该区域被触发时,显示搜索历史 缺点: @擅自更改样式,匹配系统样式

如何实现自适应页面 (响应式布局)

当我们在做网页时,应当充分考虑到网页自适应的问题 否则可能会出现同一个网页在不同的屏幕尺寸上排版布局混乱的情况 方案一:用比例控制大小 在网页代码的头部,加入一行viewport元标签 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 以下是相关的属性的解释: width:控制 viewport 的大小,可以指定的一个值,如 600,或者特殊的值,如 device

Zblog主题模板自适应手机响应式ZblogPHP简洁博客主题

Z-blog PHP版本简洁主题模板 特点简洁舒适 手机移动端自适应,完美有利于优化 代码结构利于编辑 对于不懂代码的,也非常适合简答后台简答 PC端侧边栏下拉跟随,无论下面有多长,导航侧边栏都只在左边:方便你选择栏目 SEO方面代码利于优化. 作者可免费指导安装 对于喜欢简洁的,而又不失丰富的,这是一个不错的选择 对于国产博客程序,zblog无疑是一个佼佼者.wordpress固然强大,可是沉重,买个几百的虚拟主机,差点就转不动.最后放弃选择zblog.一款好的博客主题很重要,早期作者还只是个

Bootstrap 手机屏幕自适应的响应式布局开关

head中添加 <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">   https://getbootstrap.com/docs/4.0/getting-started/introduction/#css 原文地址:https://www.cnblogs.com/xfbx/p/9344690.html

响应式网页设计:rem设置网页字体大小自适应

首先简单科普一下什么是响应式网页.响应式网页是指会根据输出设备的分辨率不同,而自动调整布局的网页.同时,在输出设备分辨率改变时,也能及时自动调整.说穿了,就是三个字:自适应. 响应式网页不仅仅是响应不同类型的设备,而且需要响应不同的用户需求.响应式的初衷是为了让信息更好的传递交流,让所有人无障碍的获取信息,同时这也是 Web 的初衷. 当我们每天面对缤纷的互联网世界的时候,文字不仅仅传递给我们众多的信息资讯,而且在设计师的手里,文字在网页中的排版承载着一种艺术的直觉. 网页中常用的文字大小单位是