资讯
当前位置:主页 > 新闻 > 民间艺术 >

在多个页面使用同一个HTML片段方法 let it be 吉他

2018-05-30 16:29 网络整理 民间艺术 编辑:admin 浏览数:环球艺术网

 上一篇文章中我们使用textarea来模拟AJAX的返回结果,造成了一些误解。 这里我们首先用asp.net的Generic Handler做一个简单...


上一篇文章中我们使用textarea来模拟AJAX的返回结果,造成了一些误解。

这里我们首先用asp.net的Generic Handler做一个简单的后台来重现这个AJAX过程。
1. HTML页面:

2. service.ashx 后台代码:

public void ProcessRequest(HttpContext context) { string filePath = context.Request["file"].ToString(); string fileContent = String.Empty; using (StreamReader sr = new StreamReader(context.Server.MapPath(filePath))) { fileContent = sr.ReadToEnd(); } context.Response.ContentType = "text/plain"; context.Response.Write(fileContent); }


3. pages2_1.txt 文件:

Page Content



将HTML片段中的JavaScript提取为一个文件
这也是自然而然就想到的,特别是HTML片段中JavaScript代码比较多的情况下,
提取为一个JS文件,让浏览器帮忙缓存不失为一种好方法。
1. 重新定义pages2_2.txt

Page Content

2. pages2_2.js

function setup() { var parent = $("#complex_page_segment"); $(".previous", parent).click(function() { $(".content", parent).html("Previous Page Content"); }); $(".next", parent).click(function() { $(".content", parent).html("Next Page Content"); }); }


3. 运行,居然报错!

问题分析
错误信息是 setup 这个函数没有定义,但是从Firebug中我们明显看到pages2_2.js的确被加载了。
那个极有可能是在 pages2_2.js 加载之前就调用了 setup 这个函数。
但是我们的setup 函数调用是放在jQuery的 $(function(){ }) 之中的,也就是在页面加载完毕才调用的。

其实现在问题已经很明显了,在AJAX返回页面片段的时候,整个页面是已经加载完成了,也就是DOM Ready。
所以在页面片段中:

$(function() { setup(); });

和下面直接调用是等价的:

setup();



解决问题
对于这个问题,我们有三种解决办法。
1. 将外部JS文件在页面中加载,而不是在AJAX返回的HTML片段。

2. 我们可以通过JavaScript先加载外部JS,再加载纯粹的HTML片段。
看一下pages2_3.htm的实现:


3. 利用JavaScript在页面上是顺序加载的特性,将HTML片段中外部JS引用放在最上面

pages2_4.htm:

pages2_4.txt:

Page Content


可能你会觉得第三种方法没有必要,但是如果你碰到这样的需求,你就知道第三种方法的重要性了。

不要在每个页面都加载这个JS文件

调用者不知道一个HTML片段关联哪些JS文件



============================================================
关于JS的顺序执行特性
可能有人对这个特性并不是很清楚,我就通过一个例子来说明。

分享到:
上一篇:小米新零售分销渠道:截至2018年3月1日,已有3
下一篇:临沂中心支公司参展临沂第五届资本交易大会

版权与免责声明:

凡未注明"稿件来源"的内容均为转载稿,本网转载出于传递更多信息的目的;如转载稿涉及版权问题,请作者联系我们,同时对于用户评论等信息,本网并不意味着赞同其观点或证实其内容的真实性。

本文地址:http://www.hqys.com.cn//xinwen/minjian/2018/0530/29199.html

转载本站原创文章请注明来源:环球艺术网

行业聚焦

桑植白茶广告词征集大赛即将截稿,最高3万

 桑植,红色的沃土、民歌的海洋、白茶的产地。桑植地处武陵山脉优质茶叶产区带,优越的自然环境孕育了滋味浓醇、回味悠...[详细]

超绝技巧,面向未来——Goldwin联手KOGEI Next邀

日本户外时尚品牌Goldwin于北京三里屯太古里旗舰店即将举办KOGEI Next in Beijing艺术展览,展期将从2023年4月28日延续至2023年5月...[详细]

麦卡伦再度携手北京当代·艺术博览会 共赏代

【2023年4月,北京】久负盛名的麦卡伦单一麦芽苏格兰威士忌The Macallan再度作为独家洋酒合作伙伴,与主办方共同呈现2023北京...[详细]

《艺术城市倡议》长沙发布“以美为媒,美美

4月26日,2023东亚文化之都城市主题交流活动在长沙如期举办,为期两天。本次活动的主题为以美为媒 美美与共,力求推动城...[详细]

为什么牛仔裤是互联网大佬的标配

最近,小米举办了一场秋季发布会,除了发布新产品,还官宣了新的代言人中国奥运飞人苏炳添,雷军更在微博上相约苏炳添...[详细]

推荐内容

更多

热点内容

更多

BAA旗下的KUROSUMI的色料效果

 

雕漆故事 Kuro在日语中大致翻译为黑色,突显了 Kuro Sumi 作为针对轮廓和灰色洗涤的首选墨水的声誉,提供纹身行业中绝对最...[详细]

吴滨 X 米兰设计周:纸随

 

  意大利米兰 2024年4月15日星期二 无间设计创始人、设计师吴滨先生, 携游山记艺术装置系列《爿园:须臾即永恒》 ,应意大...[详细]

“律动锦江-成都城市生活

 

  成都,一个延续不断的城市,在古今交叠中,沉淀出地道蜀味,形成成都独有的城市风貌,使它成为一座来了就不想走的城市...[详细]

首创城市生活艺术季,成

 

  人类文明的发展史,也是河流的历史,每一个城市发展的背后,离不开河流的陪伴。 西晋文学家左思在《蜀都赋》中写到,...[详细]

太极画派创始人

 

  王中的太极书画人生 能和王中先生成为好友,是我的荣幸,也是我人生的一大收获。他不仅是国家一级美术师,也是中国太...[详细]

  • BAA旗下的KUROSUMI的色料效果
  • 吴滨 X 米兰设计周:纸随
  • “律动锦江-成都城市生活
  • 首创城市生活艺术季,成
  • 太极画派创始人
一周排行每月关注