`
pengfeng
  • 浏览: 231722 次
  • 性别: Icon_minigender_1
  • 来自: 河南
社区版块
存档分类
最新评论

Js(Css)动态引用方法–Js(css)的统一管理

阅读更多

引自: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 动态引用外部js,css文件

    动态引用外部JS和CSS文件是提升网页加载效率和灵活性的一种常见技术。下面将详细介绍这个知识点。 首先,我们理解静态引用和动态引用的区别。静态引用通常在HTML文档中通过`&lt;script&gt;`和`&lt;link&gt;`标签完成,例如: `...

    学生信息管理系统(html + js + css)

    总结来说,"学生信息管理系统(html + js + css)"是一个集成了HTML结构、CSS样式和JavaScript交互的实例,它充分展示了前端技术在实际项目中的应用,是学习和提升Web开发技能的理想平台。通过这样的项目实践,开发者...

    CSS&javascript动态网页设计与制作

    CSS&javascript动态网页设计与制作CSS&javascript动态网页设计与制作CSS&javascript动态网页设计与制作CSS&javascript动态网页设计与制作CSS&javascript动态网页设计与制作CSS&javascript动态网页设计与制作CSS&...

    动态添加css或js链接

    ### 动态添加CSS或JS链接 在Web开发过程中,我们经常会遇到需要动态加载样式表(CSS)或脚本(JavaScript)的情况。这种方式不仅能够提高页面的加载速度,还可以实现更加灵活的功能。本文将详细介绍如何在ASP.NET ...

    web前端html+css+js实现学生信息管理系统

    【标题】:“web前端html+css+js实现学生信息管理系统” 在web开发领域,构建一个学生信息管理系统是一项常见的任务,它能帮助教育工作者有效管理学生数据。本项目以HTML、CSS和JavaScript为核心技术,实现了一个...

    unigui_调用外部js与css

    本主题聚焦于如何在Unigui项目中调用外部JavaScript(js)和样式表(css)资源,这对于扩展功能、引入第三方库或者实现自定义样式是必要的。 首先,理解Unigui的基础架构是关键。Unigui基于Vue.js,Vue.js是一个...

    HTML+CSS+JavaScript网页模板

    它允许开发者创建动态内容,如表单验证、AJAX异步数据交换、路由管理、以及利用各种库和框架(如React、Vue、Angular)构建复杂的单页应用。ES6(ECMAScript 2015)的推出为JavaScript带来了许多新的语法特性,如...

    html css 原生js实现动态京东页面

    在本项目中,我们将深入探讨如何使用HTML、CSS和原生JavaScript来实现一个动态的京东页面,这个页面包含了丰富的交互功能,如轮播图、自动轮播、倒计时(适用于秒杀模块)以及点击切换等特性。这些技术是前端开发的...

    HTML+CSS+JS 网页设计模板.zip

    随着Node.js的出现,JavaScript也能够在服务器端运行,实现了前后端的统一。 在压缩包“HTML-Templates-master”中,我们可以预见到一系列已经预设好HTML结构、CSS样式和JavaScript功能的网页模板。这些模板可能...

    运用html+css+js三件套实现动态圣诞树

    运用html+css+js三件套实现动态圣诞树

    html+javascript+css(8本chm)

    此外,JavaScript还有许多库和框架,如jQuery简化DOM操作,React用于构建用户界面,Vue.js提供组件化开发。 4. **ASP (Active Server Pages)**:ASP是微软的一种服务器端脚本环境,用于创建动态交互式网页。在ASP中...

    html页面动态加载,删除,替换 js/css引用

    html页面动态加载,删除,替换 js/css引用

    Three.js前端3D开发:使用CSS3DRenderer渲染全景图

    通过以上步骤,你就可以使用 Three.js 的 CSS3DRenderer 渲染出动态的全景图了。需要注意的是,CSS3DRenderer 依赖于浏览器对CSS3 3D变换的支持,因此在一些旧版或非主流浏览器中可能无法正常工作。在实际项目中,你...

    element ui 离线压缩版 js css 含图标

    6. **使用方法**:要在项目中使用离线版本的 Element UI,首先在 HTML 文件的 `&lt;head&gt;` 标签内引入 CSS 文件,然后在 `&lt;body&gt;` 标签底部引入 JS 文件。接着,你需要在 Vue 实例中注册 Element UI,例如: ```html ...

    domino xpages开发 引用JS和CSS

    在Domino XPages开发中,引用JavaScript(JS)和 Cascading Style Sheets(CSS)是构建交互式和美观用户界面的关键步骤。以下是如何在XPages环境中有效地引用这些资源的详细说明。 1) 直接在代码中引用: 这种方法...

    CSSinJSgenerator一个用于从常规CSS生成时尚CSSinJS文件的工具

    在JavaScript开发中,CSS-in-JS是一种将CSS样式嵌入到JavaScript代码中的方法,这种方式提供了更高级的功能,如动态样式、组件化以及更好的封装和状态管理。这个工具旨在帮助开发者轻松地将现有的CSS代码库迁移至...

    Printer_js_css 纯js实现web打印服务,完全兼容

    "Printer_js_css" 是一个纯JavaScript实现的Web打印服务,它的核心特点在于它能够实现跨浏览器的兼容性,这意味着无论用户使用何种浏览器,都能顺利地进行打印操作。这个工具的出现,为开发者提供了极大的便利,避免...

    JS和CSS和C++互相调用

    1. **JS与CSS交互**:JavaScript可以直接操作DOM(文档对象模型),改变元素的样式属性,从而实现动态CSS。例如,通过`document.getElementById('elementId').style.property = 'value'`可以修改元素的CSS属性。此外...

    抓取网页图片,css和js

    对于JavaScript驱动的动态网页,可能需要使用如Selenium等工具来模拟浏览器行为,以便执行JS并获取最终渲染的页面内容。 二、图片抓取 图片抓取是爬虫的一个重要部分,主要是找到HTML中的`&lt;img&gt;`标签,提取其`src`...

    folium js css 本地资源 src资源

    一个本地化的 folium 地图资源,包括了js,css 等文档,配合python脚本将对应资源的引用本地化,避免了引入url资源时跨境加载js/css资源网络慢的问题,提升本地folium地图的加载速度,速度提升 800 倍,让地图打开...

Global site tag (gtag.js) - Google Analytics