为什么不用js去渲染页面?
用js去渲染页面,服务器只提供数据。 那么页面都可以是静态的html文件。 通过ajax获取数据。然后js去渲染。 这样不是很和谐么?
而且好处也很多。首先页面只包含模板,静态化有助于各级缓存。
其次js 渲染简单方便。分担服务器渲染的计算量。
服务器程序实现简单只提供数据。
画个流程吧:
client ---------------------- > server
<------- html模板 + js
ajax ------------->
<------------json 数据
然后:
js 把json数据 填充 html 模板 -----> 浏览器解析渲染画到屏幕上
我指的就是js 填充 html模板这一过程.
我觉得 唯一不好的是搜索引擎不知道支持不支持这种页面了。
可是奇怪的是虽然有很多js渲染库 。有的横方便而且超简单 。但是各个网站并没有使用这些技术。请问只是为啥。仅仅是对搜索引擎不友好么?
自己照着tempo.js写了一个用于 js模板渲染的函数。
function render(id, data, insert){
if(!data) return;
if(!render.__t)render.__t = {};
var t = render.__t[id];
dom = document.getElementById(id);
if(!dom) return;
if(!t){
var html = dom.innerHTML.replace(/[\n\r]/gm,' ')
.replace(/([\'|\\|\"])/gm,"\\$1")
.replace(/#([\w\d]{3,40})#/gmi, "'+data[\"$1\"]+'");
html = ["return '", html ,"';"].join('');
t = new Function('data',html);
render.__t[id] = t;
dom.innerHTML = '';
}
if(!t) return;
var ret = '';
if(data.length){
for(var i=0,len=arr.length; i<len; i++){
arr[i] = t(arr[i]);
}
ret = arr.join('');
}else{
ret = t(data);
}
if(insert == 0){
ret = ret + dom.innerHTML;
}else if(insert == -1){
ret = dom.innerHTML + ret;
}
dom.innerHTML = ret;
}
js这么写
var obj = {urladdr:'http://google.com', name:'草根'};
render('xxx',obj);
搞定 。 如果穿进去一个list [] 。就会渲染出一串。
做了一个例子 渲染sohu微博页面的.
http://fengshihao.tk/jst.html
打开页面直接看源码. 渲染速度没问题 .
实现有两种方式,
1 把生成的json数据放到页面里 直接带过来.(不知道这样对 seo支持的怎么样?)
2 用ajax去获得.
分享到:
相关推荐
JavaScript页面渲染完毕时间的监听是前端开发者不可或缺的技能之一,其主要目的是为了在页面完全准备好之后执行特定的逻辑,如填充数据、初始化组件等。在实际应用中,这有助于优化用户体验,确保用户看到的是一个...
6. 渲染页面:浏览器将解析后的 HTML、CSS、JavaScript 文件组合成一个完整的页面。 7. 重排和重绘:浏览器对页面进行重排和重绘,以确保页面的正确显示。 在这个过程中,浏览器需要经历多次的重排和重绘,以确保...
在现代网页设计中,许多网站为了增强用户体验,或者防止数据被轻易爬取,会采用JavaScript来动态渲染页面内容。这种情况下,传统的网络爬虫可能无法抓取到完整的HTML,因为它们通常只处理服务器返回的静态页面。针对...
使用 JavaScript 排序数据并渲染到页面+源码+demo演示 使用 JavaScript 排序数据并渲染到页面+源码+demo演示 使用 JavaScript 排序数据并渲染到页面+源码+demo演示 使用 JavaScript 排序数据并渲染到页面+源码+...
Phantomjs特别适用于那些需要对JavaScript渲染后的页面进行操作的情况,例如自动化测试、屏幕截图、网页抓取等。 #### 二、Phantomjs与Python结合的应用场景 在实际应用中,Phantomjs经常被用来处理那些普通HTTP...
直接在标准的HTML页面上载入和渲染PDF文件, 还可以提高安全性(不需要安装第三方插件,安全性由浏览器保证),浏览器所做的安全措施已经为pdf.js提供了安全的运行环境。已经解决了PDF隐藏打印,下载,打开功能,打开...
js for循环中实现进度条 & 快速解决js动态改变dom元素属性后页面及时渲染的问题
**基于jQuery实现的页面数据渲染框架** 在Web开发中,数据渲染是将后端服务器返回的数据动态地展示在用户界面上的关键步骤。jQuery,作为一个轻量级、高性能的JavaScript库,因其简洁的API和强大的DOM操作能力,常...
在IT领域,Three.js是一个非常流行的JavaScript库,用于在Web浏览器中创建3D图形。它利用WebGL技术,使得开发者可以构建丰富的交互式三维场景。本项目“Three.js渲染GeoJSON”聚焦于如何使用Three.js将地理数据...
5. 配置服务器以接收HTTP请求,根据请求参数动态生成Vue实例,然后渲染页面。 6. 处理路由。在Vue Router中,使用`createHistory`的`createMemoryHistory`创建一个内存历史记录,以便在服务器端处理路由。 7. 将...
同构直出技术方案结合了服务端渲染和客户端渲染的优点,而BigPipe作为一种页面渲染技术,旨在将页面拆分为多个片段,允许浏览器并行加载,从而加速页面渲染。 静态化技术方案也是提升页面渲染性能的重要手段。通过...
在本文中,我们将深入探讨如何使用Three.js库来渲染一个养殖场模型,该模型采用obj+mtl格式。Three.js是一个基于WebGL的JavaScript库,它允许开发者在浏览器中创建和展示三维图形。让我们一起深入了解Three.js的核心...
标题中提到了“php使用QueryList轻松采集js动态渲染页面方法”,这指向了使用PHP语言以及QueryList库来采集通过JavaScript动态生成内容的网页。标题中的“js动态渲染页面”意指现代网页常会使用JavaScript技术来动态...
此外,JavaScript还可以用来控制这个DevTools扩展的逻辑,如切换CSS特性的功能开关,或者收集有关页面渲染的信息。 从压缩包子文件的文件名称"keithclark-css-feature-toggle-devtools-extension-a5ed6f1"来看,这...
如果JavaScript位于文档的头部,可能会阻塞页面的渲染,直到脚本执行完毕。因此,将脚本放在`<body>`标签底部或使用`async`或`defer`属性可以提高页面加载速度。 2. **异步加载(async)**:通过设置`async`属性,...
CSS动画与JavaScript的渲染机制之分层和合成机制 ...今天我们探讨了CSS动画为什么比JavaScript高效,主要是因为CSS动画使用了分层和合成机制,这种机制可以将页面分解成多个图层和渲染单元,从而提高页面的渲染效率。
在分享的代码片段中,`page_speed_v2.js`是页面渲染速度测试脚本的主体。这个脚本定义了一个对象`PageSpeed`,它包含一些方法来创建和提交页面速度测试数据。 `PageSpeed.createScript`方法是一个自定义函数,用于...
【标题】"基于EggVueWebpack多页面和单页面服务端渲染同构工程骨架项目"是一个专门为JavaScript开发人员设计的项目模板,它整合了Egg.js、Vue.js和Webpack这三大技术栈,以实现高效的前端应用开发。这个骨架工程旨在...
在了解这份电子书《vue.js服务端渲染指南中文pdf电子书》的内容之前,让我们先梳理一下其核心内容和知识点。本电子书主要围绕Vue.js框架中的服务端渲染(SSR)进行介绍和讲解。服务端渲染是指在服务器端运行应用程序...
本文将深入探讨如何使用HTML渲染OFD文件,并介绍一种基于SVG和Canvas的实现方案,以及一个名为"ofd.js"的JavaScript工具包。 首先,理解OFD文件结构是至关重要的。OFD文件由一系列的容器和包组成,包含元数据、文本...