引自:http://pm.htjs.net/cbb
Javascript(Css)组件在Web中的访问地址基本上要求基于Url的相对地址或绝对地址,如果地址出现错误那么Web访问时将出现异常,组件也就无法使用。因此,以前对于此种处理多为两种方法:
1、绝对地址写法:
<script type=”text/javascript” src=”http://localhost/yfjz/yfjz_scripts.js”></script>
如上,在程序中进行引用。此种引用方式的好处在于所有引用点配置方法一致,屏蔽了目录层的变换而带来的引用差异,对编程、维护来说都较为统一、规范;但这种方法对部署时存在调整,即“localhost”必须根据部署域名而更换,例如,要将程序部署到www.htjs.net网站上,那么所有程序引用都将改为<script type=”text/javascript” src=”http://www.htjs.net/yfjz/yfjz_scripts.js”></script>,如果发布目录也不是yfjz,而是shyl,那么程序引用将改为<script type=”text/javascript” src=”http://www.htjs.net/shyl/yfjz_scripts.js”></script>,这样就存在了所有引用程序必须改动的问题。
2、相对地址写法:
比如,项目用有目录A,A目录存有子目录a1、a2,那么A目录又是YFJZ目录的子目录,那么,目录结构如下:
yfjz
|—-A
|—-a1
|—-a2
如果,yfjz_scripts.js文件在yfjz目录下,那么在A目录下文件引用写法如下:
<script type=”text/javascript” src=”../yfjz_scripts.js”></script>
而a1目录下文件引用写法如下:
<script type=”text/javascript” src=”../../yfjz_scripts.js”></script>
如上,在js文件与目录间形成层次关系,相对路径应用,系统部署发布时不用担心域名及其发布目录的变化而带来的调整。同样,这样的编程方法带来的困惑是“目录层次不同而造成的引用编码差异”的问题。这种情况是,在单个js引用时就很明显,而在项目中出现多js引用、多人员分组开发时就会造成编码过程中的困惑。
3、动态引用js(css)方法:
由于基于浏览器(b/s)编程中受到安全规范协议的限定,js动态程序一般是不允许直接引用的,比如,在html页面中写入如下语句:
<script type="text/javascript">
document.write('alert("aaaa");');
</script>
那么,浏览该页面是不会执行alert的提示功能的,只会在页面中打印出“alert("aaaa");”的字样。这就是所谓的安全限定,该alert语句是不允许执行的。
另外,在js文件中,也是不允许有包含其它js文件的做法。怎么说呢,就是说,js不能像php或jsp那样用“include”方法来引用其它js文件内编码。
由以上两点限制,对于js文件的管理就成了棘手问题,目前的一般做法就是需要了就引用,或者是不管是否需要“全部都引用”。
好了,现在开始说说动态引用的优势:
可实现js的统一管理,显现编码优雅;
可实现根据功能需要动态引用js,减少资源下载时间;
可以结合1、2方法的优点、同时能屏蔽彼此单独存在时的缺点;
可实现动态定制js函数,形成类似与php、jsp的动态开发方式,建立自己的js开发架构;
实现原理:绕过浏览器(Firefox、Ie等)安全协议
实现方法:
比如,一个js文件名为ademo.js,编辑内容如下:
(function () {
var basePath = "";
for (var i = 0, scripts = document.getElementsByTagName("script"); i < scripts.length; i++)
if (scripts[i].src.match("ademo.js")) {
basePath = scripts[i].src.replace("ademo.js", "");
break;
}
document.write('<'+'script type="text/javascript" src="'+basePath+'../../commons/js/util.js"></'+'script>');
document.write('<'+'link href="'+basePath+'/Style.css" rel="stylesheet" type="text/css" />');
}) ();
比如,ademo.js文件放于yfjz目录下,发布服务器域名为localhost,那么,basePath变量的内容会为“http://localhost/yfjz”。
大家知道剩下该怎么做了吧,仅举一个例子,大家举一反三即可。
分享到:
相关推荐
动态引用外部JS和CSS文件是提升网页加载效率和灵活性的一种常见技术。下面将详细介绍这个知识点。 首先,我们理解静态引用和动态引用的区别。静态引用通常在HTML文档中通过`<script>`和`<link>`标签完成,例如: `...
总结来说,"学生信息管理系统(html + js + css)"是一个集成了HTML结构、CSS样式和JavaScript交互的实例,它充分展示了前端技术在实际项目中的应用,是学习和提升Web开发技能的理想平台。通过这样的项目实践,开发者...
CSS&javascript动态网页设计与制作CSS&javascript动态网页设计与制作CSS&javascript动态网页设计与制作CSS&javascript动态网页设计与制作CSS&javascript动态网页设计与制作CSS&javascript动态网页设计与制作CSS&...
### 动态添加CSS或JS链接 在Web开发过程中,我们经常会遇到需要动态加载样式表(CSS)或脚本(JavaScript)的情况。这种方式不仅能够提高页面的加载速度,还可以实现更加灵活的功能。本文将详细介绍如何在ASP.NET ...
【标题】:“web前端html+css+js实现学生信息管理系统” 在web开发领域,构建一个学生信息管理系统是一项常见的任务,它能帮助教育工作者有效管理学生数据。本项目以HTML、CSS和JavaScript为核心技术,实现了一个...
本主题聚焦于如何在Unigui项目中调用外部JavaScript(js)和样式表(css)资源,这对于扩展功能、引入第三方库或者实现自定义样式是必要的。 首先,理解Unigui的基础架构是关键。Unigui基于Vue.js,Vue.js是一个...
它允许开发者创建动态内容,如表单验证、AJAX异步数据交换、路由管理、以及利用各种库和框架(如React、Vue、Angular)构建复杂的单页应用。ES6(ECMAScript 2015)的推出为JavaScript带来了许多新的语法特性,如...
在本项目中,我们将深入探讨如何使用HTML、CSS和原生JavaScript来实现一个动态的京东页面,这个页面包含了丰富的交互功能,如轮播图、自动轮播、倒计时(适用于秒杀模块)以及点击切换等特性。这些技术是前端开发的...
随着Node.js的出现,JavaScript也能够在服务器端运行,实现了前后端的统一。 在压缩包“HTML-Templates-master”中,我们可以预见到一系列已经预设好HTML结构、CSS样式和JavaScript功能的网页模板。这些模板可能...
运用html+css+js三件套实现动态圣诞树
此外,JavaScript还有许多库和框架,如jQuery简化DOM操作,React用于构建用户界面,Vue.js提供组件化开发。 4. **ASP (Active Server Pages)**:ASP是微软的一种服务器端脚本环境,用于创建动态交互式网页。在ASP中...
html页面动态加载,删除,替换 js/css引用
通过以上步骤,你就可以使用 Three.js 的 CSS3DRenderer 渲染出动态的全景图了。需要注意的是,CSS3DRenderer 依赖于浏览器对CSS3 3D变换的支持,因此在一些旧版或非主流浏览器中可能无法正常工作。在实际项目中,你...
6. **使用方法**:要在项目中使用离线版本的 Element UI,首先在 HTML 文件的 `<head>` 标签内引入 CSS 文件,然后在 `<body>` 标签底部引入 JS 文件。接着,你需要在 Vue 实例中注册 Element UI,例如: ```html ...
在Domino XPages开发中,引用JavaScript(JS)和 Cascading Style Sheets(CSS)是构建交互式和美观用户界面的关键步骤。以下是如何在XPages环境中有效地引用这些资源的详细说明。 1) 直接在代码中引用: 这种方法...
在JavaScript开发中,CSS-in-JS是一种将CSS样式嵌入到JavaScript代码中的方法,这种方式提供了更高级的功能,如动态样式、组件化以及更好的封装和状态管理。这个工具旨在帮助开发者轻松地将现有的CSS代码库迁移至...
"Printer_js_css" 是一个纯JavaScript实现的Web打印服务,它的核心特点在于它能够实现跨浏览器的兼容性,这意味着无论用户使用何种浏览器,都能顺利地进行打印操作。这个工具的出现,为开发者提供了极大的便利,避免...
1. **JS与CSS交互**:JavaScript可以直接操作DOM(文档对象模型),改变元素的样式属性,从而实现动态CSS。例如,通过`document.getElementById('elementId').style.property = 'value'`可以修改元素的CSS属性。此外...
对于JavaScript驱动的动态网页,可能需要使用如Selenium等工具来模拟浏览器行为,以便执行JS并获取最终渲染的页面内容。 二、图片抓取 图片抓取是爬虫的一个重要部分,主要是找到HTML中的`<img>`标签,提取其`src`...
一个本地化的 folium 地图资源,包括了js,css 等文档,配合python脚本将对应资源的引用本地化,避免了引入url资源时跨境加载js/css资源网络慢的问题,提升本地folium地图的加载速度,速度提升 800 倍,让地图打开...