ios 自己封装的sdk引入了第三方库,怎么防止与外界的冲突

html-css020

ios 自己封装的sdk引入了第三方库,怎么防止与外界的冲突,第1张

jQuery是目前使用最广泛的前端框架之一,有大量的第三方库和插件基于它开发。为了避免全局命名空间污染,jQuery提供了jQuery/ajax/libs/jquery/1/ajax/libs/jquery/1/ajax/libs/jquery/1/ajax/libs/jquery/1.6.4/jquery.min.js"> <!-- jQuery and $ now point to jQuery 1.6.4 --> <script>var jquery164 = jQuery.noConflict( true )</script> <!-- jQuery now points to jQuery 1.7.0$ now points to jQuery 1.10.2jquery164 points to jQuery 1.6.4 -->避免第三方库的冲突 以上的代码片段展示了如何解决多版本jQuery的冲突。接下来,我们尝试解决jQuery库和第三方库的冲突,下面出现的代码片段在jQuery的官方文档中都有,有兴趣的程序猿可以仔细阅读官方文档体会其中的区别。 直接使用No-Conflict模式 使用No-Conflict模式,其实就是对jQuery进行重命名,再调用。 <!-- 采用no-conflict模式,jquery.js在prototype.js之后被引入. --> <script src="prototype.js"></script> <script src="jquery.js"></script> <script> var $j = jQuery.noConflict() // $j 引用了jQuery对象本身. $j(document).ready(function() { $j( "div" ).hide() }) // $ 被重新指向prototype.js里定义的对象 // document.getElementById(). mainDiv below is a DOM element, not a jQuery object. window.onload = function() { var mainDiv = $( "main" ) } </script>使用自执行函数封装 使用这种方式,你可以在匿名函数内部继续使用标准的$对象,这也是众多jQuery插件采用的方法。需要注意的是,使用这种方法,函数内部无法再使用prototype.js定义的$对象了。 <!-- jquery.js在prototype.js之后被引入. --> <script src="prototype.js"></script> <script src="jquery.js"></script> <script> jQuery.noConflict() (function( $ ) { // Your jQuery code here, using the $ })( jQuery ) </script>使用标准jQuery(document).ready()函数 如果jQuery库在其它库之前引入,那么jQuery内部定义的jQuery和$会被第三方库覆盖,这时候再使用noConflict()已经没有什么意义了。解决的方法很简单,直接使用jQuery的标准调用方式。 <!-- jquery.js在prototype.js之前被引入. --> <script src="jquery.js"></script> <script src="prototype.js"></script> <script> // Use full jQuery function name to reference jQuery. jQuery( document ).ready(function() { jQuery( "div" ).hide() }) // 或者 jQuery(function($){ // Your jQuery code here, using the $ }) // Use the $ variable as defined in prototype.js window.onload = function() { var mainDiv = $( "main" ) } </script> 下面给大家介绍jQuery noConflict() 方法 noConflict() 方法会释放会 $ 标识符的控制,这样其他脚本就可以使用它了。 实例 当然,您仍然可以通过全名替代简写的方式来使用 jQuery: $.noConflict() jQuery(document).ready(function(){ jQuery("button").click(function(){ jQuery("p").text("jQuery 仍在运行!") }) }) 实例 您也可以创建自己的简写。noConflict() 可返回对 jQuery 的引用,您可以把它存入变量,以供稍后使用。请看这个例子: var jq = $.noConflict() jq(document).ready(function(){ jq("button").click(function(){ jq("p").text("jQuery 仍在运行!") }) }) 实例 如果你的 jQuery 代码块使用 $ 简写,并且您不愿意改变这个快捷方式,那么您可以把 $ 符号作为变量传递给 ready 方法。这样就可以在函数内使用 $ 符号了 - 而在函数外,依旧不得不使用 "jQuery": $.noConflict() jQuery(document).ready(function($){ $("button").click(function(){ $("p").text("jQuery 仍在运行!") }) })

淘宝提供给设计师一个SDK(备注:Software Development Kit, 即软件开发工具包 ,一般是一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合),设计师在这个开发包上设计出的模板,就是淘宝Sdk高级模板。高级模板布局灵活,页面美观,可以设计出多种促销模块,同时操作起来非常简单!拓展版和旗舰版,商城用户、无名良品用户才可以使用高级模板哦!! CSS模板是指用CSS语言开发的模板,用CSS做的模板更加绚丽更加人性化,对用户体验这块做的很好!而且CSS的布局符合WEB标准,对各大搜索引擎更加友好,做SEO也更为有效! SDK与 CSS 到底有哪些不同呢?2.SDK对于设计师来讲自由度更大,CSS则是把自由度交到卖家手上,SDK可以自由添加现成的N多设计师编辑好的模块。3.SDK模板的到来必定引起淘宝店铺装修的革命,在店铺装修上具有里程牌的意义。4.SDK 全智能化操作,代码全封装,摆脱了传统的table模板和CSS模板繁琐的操作,让用户彻底告别代码。SDK提供一个可视化的更加简单的操作界面,对用户更加友好,用户只需要点点鼠标就可以完成整个店铺的装修。 CSS 模板操作起来比较繁琐,对于装修零基础的用户很难入手,一不小心就代码出错,页面错位,但是就目前来说CSS模板修改自由度比SDK模板大,对于了解装修的卖家,想通过修改模板来打造更加个性的店铺的, CSS模板目前是不二的选择。5.CSS能制作出各种产品展示效果。采用自定义区传统的编辑器操作,但因CSS模板涉及到的效果相对会比较复杂,客户往往会因为在编辑替换图片或者文字的时候,容易造成模块丢失或者错位,但熟悉了其操作或者懂一点html代码,其操作也是相当简单的,而一些对模板装修有经验者,更可以对模板加以修改,变换出更加丰富的页面出来。 SDK推广宝贝栏只需选择相应需要推荐的宝贝即可,无需再手动黏贴图片,而且颜色背景都可以自由编辑。6.SDK免去传统的编辑器操作方式,采用新的输入方式来操作,替换图片和文字只需输入一些简单的内容便可自动完成,对于一些新手或者半新手来说,这是最为简单不过了,而且因为不用担心客户编辑的造成模块丢失或者错位,设计师可以更加大胆地设计出更COOL的效果来展示,SDK模板设计师可以在制作的时候随意布局,这样,SDK模板可以做出比CSS更漂亮的模块效果。但也因SDK模板是根据设计师的布局来制作,所以,现阶段最大限制就是客户不能布局,也不能对模块中的字体大小,位置,图片等进行样式修改,都得按设计师的设计来显示,所以,对于装修熟手来说,这个约束是很大的。从上面几点分析,可以看到,总体来说SDK功能特性优于CSS,也更适合新手,当然,市面上价格也更贵。CSS模板修改自由度高,比较适合有一定基础的卖家使用。

java.lang.ClassCastException: java.rmi.ServerException

at com.ucap.formpro.forms.client.EJBClient.processFormSubmission(Unknown Source)

at com.chinasofti.jncj.coll.ucap.integer.ProcessSubmitServlet.performTask(ProcessSubmitServlet.java:43)

主要是看这里。首先时隔类型转换异常,还有一个找不到的资源文件