标签: yui

jQuery与Yahoo UI API设计

我对jQuery和Yahoo UI API之间的设计差异感到困惑.免责声明:我非常不喜欢jQuery api,但我对网络编程和javascript一般都是一个无知的人,所以我可能会出错,并回到这里乞求兑换.太长...

我的问题如下.这两种设计是不同的.jQuery将DOM置于中心,并通过在其上执行"触发器"增强器方法来装饰DOM.例

$("#flexigrid").flexigrid()
Run Code Online (Sandbox Code Playgroud)

jQuery的一个要求是,在某些情况下,你必须事先遵循一个非常具体的传统结构.例:

<div id="accordion">
    <h3><a href="#">First header</a></h3>
    <div>First content</div>
    <h3><a href="#">Second header</a></h3>
    <div>Second content</div>
</div>
Run Code Online (Sandbox Code Playgroud)

然后

$("#accordion").accordion();
Run Code Online (Sandbox Code Playgroud)

此外,返回的实体通常不提供任何通过方便的编程方法隐藏DOM的机制.要操纵您的jQuery实体,您必须通过选择器访问DOM,在某些情况下访问不能保证很容易知道,就像内部生成的ID一样.假设你想以编程方式交换手风琴,你所做的就是

$('#accordion').accordion('option', 'active', 2);
Run Code Online (Sandbox Code Playgroud)

而不是更直观

myAccordion.setActiveTab(2);
Run Code Online (Sandbox Code Playgroud)

另一方面,雅虎ui专注于javascript对象,你创建它们传递DOM节点选择器(例如myDataTable = new YAHOO.widget.DataTable("container_id")),然后通过对象方法执行所有操作.想要添加新行吗?打电话myDataTable.addRow().DOM是隐藏的.你并不关心幕后发生的事情.

现在,我对Trolltech QT的体验很好地映射到了Yahoo UI.窗口小部件对象的清晰,定义的API,通过继承重新实现其中一部分的最终自由,不透明渲染,除非您想打开盒子并弄脏手.QT是一个成功的API,运行良好,易于使用,Yahoo UI在设计风格上有点类似.另一方面,jQuery以违反直觉(对我来说)的方式工作,非常开放的方式,在其对象上减少了API.

足够的咆哮.关键是我认为我可能在这方面做错了,但我想知道为什么.拥有类似jQuery的界面有哪些设计优势(DOM显然暴露在外,你可能不得不寻找jQuery插件自动创建的东西,所以你最终可以$(选择)它们并附加事件或修改它们的内容)而不是像YUI那样隐藏物品和商品方法背后的一切?

我不是在谈论速度,代码大小或打字数量.我在谈论封装,专注于接口和易于访问等设计概念.什么设计更好,在什么情况下,为什么?

javascript jquery yui

14
推荐指数
2
解决办法
4308
查看次数

如何使用YUI Compressor自动化JavaScript文件压缩?

YUI Compressor不接受通配符参数,所以我不能像这样运行它:

C:>java -jar yuicompressor.jar *.js
Run Code Online (Sandbox Code Playgroud)

但我有超过500个文件,而不是必须创建这样的批处理文件:

C:>java -jar yuicompressor.jar file1.js -o deploy\file1.js
C:>java -jar yuicompressor.jar file2.js -o deploy\file2.js
...
C:>java -jar yuicompressor.jar file500.js -o deploy\file500.js
Run Code Online (Sandbox Code Playgroud)

当然,我的文件名不是那么统一.

有没有办法在不编写任何代码的情况下实现自动化?:)

javascript yui batch-file

13
推荐指数
3
解决办法
8018
查看次数

闪存的好CSS(也就是Rails中的信息消息,OSX中的咆哮)

我很难让CSS工作,就像我希望它用于闪存(当你登录或做某事或什么来确认你的行动时显示的那些小消息,例如在Rails中).

我希望它:

  • 生活在任意的div中
  • 看起来像一个带有文字的居中框
  • 只需要适合文本所需的大小(如果小于指定的最大宽度)或包装文本(如果更大)
  • 具有居中或左对齐(或组合)的文本,具体取决于闪光灯(例如,短错误是居中的;更长的操作方式新手入手是左对齐的); 一个额外的CSS类(例如'flash info left')来支持这个就行了
  • 在页面上彼此相邻闪烁多次(如示例所示)
  • 优选地,由具有围绕文本的类的单个元素组成,而不是由包装元素内的元素内的文本组成
  • 最好是YUI CSS兼容和纯CSS(不是JS)
  • 适用于IE7 +,FFx 3 +,Safari 3+; 在旧浏览器上工作"足够好"

我见过的大多数CSS都没有做到这一点 - 例如,大多数指定固定宽度,这意味着要么包裹得很差,要么填充太多.

我怎样才能做到这一点?(或者:我为什么不能?)

这是我目前的CSS:

<div class="flash info">
  <span class="close"><a href="AJAX callback">X</a></span>
  Some informational text here that can be closed w/ the X
</div>
<div class="flash error">
  Some other simultaneous error
</div>

.flash {
    text-align: center;
    padding:    .3em .4em;
    margin:     0 auto .5em;
    clear:      both;
    max-width:  46.923em; /* 610/13 */  
    *max-width: 45.750em; /* 610/13.3333 - for IE */
}

.flash.error { …
Run Code Online (Sandbox Code Playgroud)

css user-interface yui ruby-on-rails tooltip

13
推荐指数
1
解决办法
1万
查看次数

Dojo vs YUI javascript框架

我想知道你们对这两个框架的看法,包括:

  • 鲁棒性,
  • 代码质量,
  • 核心开发人员继续推进新功能,
  • 跨浏览器问题,
  • 模块组件,
  • 最容易学习和整合

我已经知道并使用jQuery,我最近发现它缺乏用于大型Web应用程序的"企业就绪"组件.

现在我不想开始讨论jquery,或者为什么mootools不在那里,我想知道你们对这两个框架的具体看法.

谢谢!

javascript dojo yui javascript-framework

13
推荐指数
2
解决办法
7723
查看次数

jQuery和YUI(雅虎ui)

所以我理解它jQuery基本上是一个DOM操作的框架,作为一个更高的抽象层,然后是原生的javascript.YUI(yahoo UI)库是一个用户界面小部件库,为开发人员提供了一种忘记DOM操作并更多地处理业务逻辑的方法.

是对的吗?

我的问题:包含两个库是否存在严重的性能问题?YUI与jQuery UI相比如何?

javascript jquery yui

13
推荐指数
2
解决办法
1万
查看次数

javascript变量有存储限制吗?

javascript变量是否有存储容量限制?

我正在设计一个YUI数据表,我从数据库中获取数据并将其存储在js对象中,无论何时需要,我将提取它并更新YUI数据表.现在在Dev我很少有记录和正确存储.在生产中我可能有1000个记录,这个js对象能够存储所有这1000个记录吗?

如果它没有能力我将在jsp中创建隐藏的textarea并将数据存储在那里

javascript variables yui yui-datatable

13
推荐指数
2
解决办法
1万
查看次数

现有的JavaScript框架是否包含CommonJS?

JavaScript框架,如Prototype,jQuery,YUI,MooTools,Dojo等.所有这些似乎都是针对客户端开发人员的,重点是使用更少的代码更有效地实现通用用户交互模式.

随着服务器端JavaScript的出现,这些框架是否打算采用CommonJS标准来实现其库函数重用于服务器端JavaScript,还是允许其他框架(如Node和Narwhal)处理服务器端用例?

(我意识到这个问题危险地接近可以讨论但没有回答的问题,但我认为Stack Overflow社区实际上可以用特定的引用回答这个问题.)

javascript jquery yui mootools commonjs

12
推荐指数
2
解决办法
2371
查看次数

yui或yui3

YUI3已经足够成熟吗?它的优势和劣势与YUI有什么不同

javascript ajax yui yui3

11
推荐指数
1
解决办法
2048
查看次数

在jboss上的Yui压缩器StringIndexOutOfBoundsException

当用2.4.6最小化yui时,我遇到了这个问题:

java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:232

at java.lang.String.substring(String.java:1934)
at com.yahoo.platform.yui.compressor.JavaScriptCompressor.printSourceString(JavaScriptCompressor.java:267)
at com.yahoo.platform.yui.compressor.JavaScriptCompressor.parse(JavaScriptCompressor.java:330)
at com.yahoo.platform.yui.compressor.JavaScriptCompressor.<init>(JavaScriptCompressor.java:533)
Run Code Online (Sandbox Code Playgroud)

它通过我的IDE启动时工作,但当部署到jboss时它没有.这个地方:http://yuilibrary.com/forum/viewtopic.php?p = 200686对同一个问题进行了一些讨论.

显然问题是org/mozilla/javascript/Parser在我的maven配置中拉入的两个罐子里面:

<dependency>
<groupId>com.yahoo.platform.yui</groupId>
<artifactId>yuicompressor</artifactId>
<version>2.4.6</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

有什么方法可以使用maven排除等或通过升级我的YUI版本来解决这个问题.它似乎很无聊,它只是不起作用,我不想写一个自定义类加载器.

请帮忙!

javascript java jboss yui tapestry

11
推荐指数
2
解决办法
4354
查看次数

YuiCompressorTask:"无法找到基本名称org.mozilla.javascript.resources.Messages,locale en_US的包"

我一直在我的项目上使用YuiCompressorTask(最新版本)很长一段时间没有任何问题.在OSX上升级到Oracle的Java 1.7软件包之后,它会出现以下异常(这是针对javascript文件;它适用于css文件):

[yuiCompress] java.lang.reflect.InvocationTargetException
[yuiCompress]   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[yuiCompress]   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
[yuiCompress]   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[yuiCompress]   at java.lang.reflect.Method.invoke(Method.java:601)
[yuiCompress]   at com.yahoo.platform.yui.compressor.Bootstrap.main(Bootstrap.java:21)
[yuiCompress]   at ww.ant.YuiCompressorTask.execute(YuiCompressorTask.java:40)
[yuiCompress]   at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
[yuiCompress]   at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
[yuiCompress]   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[yuiCompress]   at java.lang.reflect.Method.invoke(Method.java:601)
[yuiCompress]   at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
[yuiCompress]   at org.apache.tools.ant.Task.perform(Task.java:348)
[yuiCompress]   at org.apache.tools.ant.Target.execute(Target.java:390)
[yuiCompress]   at org.apache.tools.ant.Target.performTasks(Target.java:411)
[yuiCompress]   at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399)
[yuiCompress]   at org.apache.tools.ant.Project.executeTarget(Project.java:1368)
[yuiCompress]   at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
[yuiCompress]   at org.apache.tools.ant.Project.executeTargets(Project.java:1251)
[yuiCompress]   at org.apache.tools.ant.Main.runBuild(Main.java:809)
[yuiCompress]   at org.apache.tools.ant.Main.startAnt(Main.java:217)
[yuiCompress]   at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)
[yuiCompress]   at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)
[yuiCompress] Caused by: java.util.MissingResourceException: Can't find bundle for …
Run Code Online (Sandbox Code Playgroud)

java yui rhino

11
推荐指数
2
解决办法
3809
查看次数