htmlinclude(如何实现Javascript的include功能)
老铁们,大家好,相信还有很多朋友对于htmlinclude和如何实现Javascript的include功能的相关问题不太懂,没关系,今天就由我来为大家分享分享htmlinclude以及如何实现Javascript的include功能的问题,文章篇幅可能偏长,希望可以帮助到大家,下面一起来看看吧!
#include<>里面能填什么
#include<>括号中的是叫头文件的.
这些是C++的头文件!
#include<ctype.h>//字符处理
#include<errno.h>//定义错误码
#include<float.h>//浮点数处理
#include<fstream.h>//文件输入/输出
#include<iomanip.h>//参数化输入/输出
#include<iostream.h>//数据流输入/输出
#include<limits.h>//定义各种数据类型最值常量
#include<locale.h>//定义本地化函数
#include<math.h>//定义数学函数
#include<stdio.h>//定义输入/输出函数
#include<stdlib.h>//定义杂项函数及内存分配函数
#include<string.h>//字符串处理
#include<strstrea.h>//基于数组的输入/输出
#include<time.h>//定义关于时间的函数
#include<wchar.h>//宽字符处理及输入/输出
#include<wctype.h>//宽字符分类
标准 C++(同上的不再注释)
#include<algorithm>//STL通用算法
#include<bitset>//STL位集容器
#include<cctype>
#include<cerrno>
#include<clocale>
#include<cmath>
#include<complex>//复数类
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<ctime>
#include<deque>//STL双端队列容器
#include<exception>//异常处理类
#include<fstream>
#include<functional>//STL定义运算函数(代替运算符)
#include<limits>
#include<list>//STL线性列表容器
#include<map>//STL映射容器
#include<iomanip>
#include<ios>//基本输入/输出支持
#include<iosfwd>//输入/输出系统使用的前置声明
#include<iostream>
#include<istream>//基本输入流
#include<ostream>//基本输出流
#include<queue>//STL队列容器
#include<set>//STL集合容器
#include<sstream>//基于字符串的流
#include<stack>//STL堆栈容器
#include<stdexcept>//标准异常类
#include<streambuf>//底层输入/输出支持
#include<string>//字符串类
#include<utility>//STL通用模板类
#include<vector>//STL动态数组容器
#include<cwchar>
#include<cwctype>
include <math.h>是什么意思
#include就是中文的意思就是包含的意思。
#include<math.h>就是包含这个math.h文件的意思。
(#include<math.h>;#include"math.h"这两种都是包含的意思。具体的还是有点差别的)
double frexp(double value,int*exp);这是一个将value值拆分成小数部分f和(以2为底的)指数部分exp,并返回小数部分f,即f*2^exp。其中f取值在0.5~1.0范围或者0。
double ldexp(double x,int exp);这个函数刚好跟上面那个frexp函数功能相反,它的返回值是x*2^exp
double modf(double value,double*iptr);拆分value值,返回它的小数部分,iptr指向整数部分。
扩展资料:
当函数的结果不可以表示为浮点数时。如果是因为结果的幅度太大以致于无法表示,则函数会设置 errno为 ERANGE来表示范围错误,并返回一个由宏 HUGE_VAL或者它的否定(- HUGE_VAL)命名的一个特定的很大的值。
如果结果的幅度太小,则会返回零值。在这种情况下,error可能会被设置为 ERANGE,也有可能不会被设置为 ERANGE。
如何实现Javascript的include功能
js为什么需要include?让我们想想这样1个场景,a.js需要用到1个公用的common.js,当然你可以在用到a.js的页面使用<script src="common.js">,但假设有5个页面用到了a.js,你是不是要写5遍<script。而且要是以后a.js又需要引用common2.js,你是不是又的修改5个页面了?
已有js include的一些问题
在写这个之前在网上搜索了些资料,发现以前写的include都存在2个问题,这也是include需要解决的比较重要的2个问题。
1、相对路径的问题:在a.js中使用include("../js/common.js"); include函数中肯定是使用相对路径,是相对a.js的路径。而a.js在html中使用<script>嵌入有可能是相对路径,有可能是绝对路径。 include函数如何才能真正确定common.js的绝对路径,或者是相对html的相对路径。网上一些为了解决这个问题,还需要加一些js变量,不方便。
2、引用的问题。网上include函数的实现几乎都是使用下面2种方式插入common.js
document.write("<script src='"+..+"></script>")
或者
var s= document.createElement("script");
s.src=...;
head.insertAfter(s,...);
document.write输出的脚本会在a.js后面加载,而createElement("script")创建的脚本是非阻塞加载。所以如果在common.js加载完毕之前,a.js中调用了common.js的函数就会报错。
实现
解决上面2个问题,就可以实现js include。
第1个问题,我的方法是先获取到a.js在html中的绝对路径(如果是相对路径,就转为绝对路径),然后再把common.js的路径转为绝对路径。
第2个问题,采用同步的ajax来请求common.js,这样就不会出现引用问题。
实现代码如下:
复制代码代码如下:
//根据相对路径获取绝对路径
function getPath(relativePath,absolutePath){
var reg= new RegExp("\\.\\./","g");
var uplayCount= 0;//相对路径中返回上层的次数。
var m= relativePath.match(reg);
if(m) uplayCount= m.length;
var lastIndex= absolutePath.length-1;
for(var i=0;i<=uplayCount;i++){
lastIndex= absolutePath.lastIndexOf("/",lastIndex);
}
return absolutePath.substr(0,lastIndex+1)+ relativePath.replace(reg,"");
}
function include(jssrc){
//先获取当前a.js的src。a.js中调用include,直接获取最后1个script标签就是a.js的引用。
var scripts= document.getElementsByTagName("script");
var lastScript= scripts[scripts.length-1];
var src= lastScript.src;
if(src.indexOf("http://")!=0&& src.indexOf("/")!=0){
// a.js使用相对路径,先替换成绝对路径
var url= location.href;
var index= url.indexOf("?");
if(index!=-1){
url= url.substring(0, index-1);
}
src= getPath(src,url);
}
var jssrcs= jssrc.split("|");//可以include多个js,用|隔开
for(var i=0;i<jssrcs.length;i++){
//使用juqery的同步ajax加载js.
//使用document.write动态添加的js会在当前js的后面,可能会有js引用问题
//动态创建script脚本,是非阻塞下载,也会出现引用问题
$.ajax({type:'GET',url:getPath(jssrc,src),async:false,dataType:'script'});
}
}
在a.js中直接使用 include("../js/common.js");
#include< >和#include“ ”的区别
#include<>和#include“”的区别:
一、引用的头文件不同
#include<>引用的是编译器的类库路径里面的头文件。
#include“”引用的是你程序目录的相对路径中的头文件。
二、用法不同
#include<>用来包含标准头文件(例如stdio.h或stdlib.h).
#include“”用来包含非标准头文件。
三、调用文件的顺序不同
#include<>编译程序会先到标准函数库中调用文件。
#include“”编译程序会先从当前目录中调用文件。
四、预处理程序的指示不同
#include<>指示预处理程序到预定义的缺省路径下寻找文件。
#include“”指示预处理程序先到当前目录下寻找文件,再到预定义的缺省路径下寻找文件。
参考资料来源:百度百科——include
END,本文到此结束,如果可以帮助到大家,还望关注本站哦!