php js css加载合并函数 宋正河整理
<?php
//php js css加载合并函数 宋正河整理
//转载请注明出处
define('COMBINE_JS',true);
define('COMBINE_CSS',true);
define('APPLICATION_JS_ROOT','E:/wwwroot/m/js/');
define('APPLICATION_CSS_ROOT','E:/wwwroot/m/css/');
define('SC_ROOT','E:/wwwroot/m/static_cache/');
define('SC_URL','http://www.localhost.com/m/static_cache/');
define('APPLICATION_JS','http://www.localhost.com/m/js/');
define('APPLICATION_CSS','http://www.localhost.com/m/css/');
function load_combine_js($js,$path=array(),$origin=false,$part=1){
if(!is_array($js)) return false;
if(empty($path)){
$path_url=APPLICATION_JS;
$path_root=APPLICATION_JS_ROOT;
}
if($origin or (!COMBINE_JS)){
$string='';
for($i=0;$i<count($js);$i++){$string.="<script src='{$path_url}{$js[$i]}.js'></script>\n";}
echo $string;
return true;
}
$cache_filename='js-'.md5($_SERVER['SCRIPT_NAME'].$part).'.js';
if(!file_exists(SC_ROOT.$cache_filename)){
$file_content='';
for($i=0;$i<count($js);$i++){
$f=$path_root.$js[$i].'.js';
if(file_exists($f)) $file_content.=file_get_contents($f)."\n";
}
file_put_contents(SC_ROOT.$cache_filename,$file_content);
}
$file=SC_URL.$cache_filename;
echo "<script src='{$file}'></script>\n";
return true;
}
function load_combine_css($css,$path=array(),$origin=false,$part=1){
if(!is_array($css)) return false;
if(empty($path)){
$path_url=APPLICATION_CSS;
$path_root=APPLICATION_CSS_ROOT;
}
if($origin or (!COMBINE_CSS)){
$string='';
for($i=0;$i<count($css);$i++){$string.="<link href='{$path_url}{$css[$i]}.css' rel='stylesheet' type='text/css' />\n";}
echo $string;
return true;
}
$cache_filename='css-'.md5($_SERVER['SCRIPT_NAME'].$part).'.css';
if(!file_exists(SC_ROOT.$cache_filename)){
$file_content='';
for($i=0;$i<count($css);$i++){
$f=$path_root.$css[$i].'.css';
if(file_exists($f)) $file_content.=file_get_contents($f)."\n";
}
file_put_contents(SC_ROOT.$cache_filename,$file_content);
}
$file=SC_URL.$cache_filename;
echo $string="<link href='{$file}' rel='stylesheet' type='text/css' />\n";
return true;
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<?php
load_combine_js(array('a','b'),array(),true);
load_combine_js(array('a','b'));
load_combine_css(array('1','2'),array(),true);
load_combine_css(array('1','2'));
?>
</head>
<body>
123
</body>
</html>
php js css加载合并函数 宋正河整理的更多相关文章
- php codeigniter (CI) oracle 数据库配置-宋正河整理
database.php 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 $active_group = 'default'; $active_record ...
- svn图文教程-宋正河整理
下载地址:http://download.csdn.net/download/songzhengdong82/4433476 在线浏览:http://wenku.baidu.com/view/07f1 ...
- js动态加载js css文件,可以配置文件后辍,防止浏览器缓存
js的引用,在浏览器,或微信上访问经常会遇到文件改了,但就是没有更新的问题,使用此函数可以轻松解决缓存问题只需要把js的引用方式改为使用此函数加载即可 源码如下: /** * js动态加载js css ...
- CSS样式表、JS脚本加载顺序与SpringMVC在URL路径中传参数与SpringMVC 拦截器
CSS样式表和JS脚本加载顺序 Css样式表文件要在<head>中先加载,这样网页显示时可以第一次就渲染出正确的布局和样式,网页就不会闪烁,或跳变 JS脚本尽可能放在<body> ...
- 定时器详解和应用、js加载阻塞、css加载阻塞
1.setTimeout().setInterval()详解和应用 1.1 详解: setTimeout.setInterval执行时机 1.2 存在问题: setInterval重复定时器可能存在的 ...
- js动态加载css文件和js文件的方法
今天研究了下js动态加载js文件和css文件的方法. 网上发现一个动态加载的方法.摘抄下来,方便自己以后使用 [code lang="html"] <html xmlns=& ...
- JS和CSS加载(渲染)机制不同
一.结论 CSS可以在页面加载完成后随时渲染.举个例子:通过js给某个元素加一个id或者css,只要这个id或者css有对应的样式,此元素的样式就会自动生效. JS不可以在页面加载完成后生效.最明显的 ...
- js动态加载数据并合并单元格
js动态加载数据合并单元格, 代码如下所示,可复制直接运行: <!DOCTYPE HTML> <html lang="en-US"> <head> ...
- 页面加载异常 清除浏览器静态文件 js css 缓存 js动态加载js css文件,可以配置文件后辍,防止浏览器缓存
js清除浏览器缓存的几种方法 - 兔老霸夏 - 博客园 https://www.cnblogs.com/Mr-Rocker/p/6031096.html js清除浏览器缓存的几种方法 一.CSS和 ...
随机推荐
- 索引&切片 切割split
索引 s[n] # 中括号里n为一个数字 切片 s[0:9] ...
- Python简单的购物车小代码
# -*- coding: utf-8 -*- # @Time : 2018-05-31 14:56 # @Author : 超人 # @Email : huxiaojiu111@gmail.com ...
- arcgis 10.1 导入数据到oracle 发布地图服务
机器配置说明 数据库服务器 系统:linux 软件:oracle 11G 64位 Arcgis server服务器 系统:win7 专业版 软件:arcgis server 10.1.win64_11 ...
- python中pandas里面的dataframe数据的筛选小结
pandas大家用的都很多,像我这种用的不够熟练,也不够多的就只能做做笔记,尽量留下点东西吧. 筛选行: a. 按照列的条件筛选 df = pandas.DataFrame(...) # suppos ...
- 20165318 《Java程序设计》实验一(Java开发环境的熟悉)实验报告
20165318 <Java程序设计>实验一(Java开发环境的熟悉)实验报告 一.实验报告封面 课程:Java程序设计 班级:1653班 姓名:孙晓暄 ...
- 1191. [HNOI2006]超级英雄【二分图】
Description 现在电视台有一种节目叫做超级英雄,大概的流程就是每位选手到台上回答主持人的几个问题,然后根据回答问题的 多少获得不同数目的奖品或奖金.主持人问题准备了若干道题目,只有当选手正确 ...
- [USACO19FEB]Moorio Kart
题目 我们的神仙教练在考试里放了这道题,当时我非常惊讶啊 背包是\(O(n^3)\)的吧明明是带根号的好吧,那既然要优化的话 NTT!什么时候我们教练会在考试里放多项式了 模数\(1e9+7\)? 任 ...
- Day8 类的继承
为什么要继承? 观察两个类的成员组成 提取相同的属性和方法 宠物是父类,狗和金鱼是子类.子类具有父类的属性和方法. 继承定义 是使用已存在的类作为基础建立新类的技术. 单一继承:只有一个父类. 父类可 ...
- jQuery页面滚动数字增长插件
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- [luogu3942] 将军令
题面 题目的意思大概是给你一棵n个点的树, 求最少需要多少个多少个点, 整棵树都被覆盖(覆盖的意思是所有离被选中的点距离不大于k的点都视作已覆盖). 考虑贪心(其实我考试的时候以为是道树形dp ...