你知道jQuery任何组件,你可以在浏览器中预览.doc,.pdf,.jpg ….文件吗? 谢谢
我正在构建一个由组件组成的站点。 一个组件,定义为一组特定的HTML和CSS以及jQuery。 该网站的每个页面都包含许多组件。 根据最佳实践,我们将javascript块放在页面底部。 我们加载了所需的.js文件,然后我打算调用所需的函数: doThisThing(); doThatThing(); 假设我有组件X.我想在渲染页面上出现该组件时调用一个函数。 从jQuery的角度来看,处理这个问题的理想方法是什么? 一些选择: 1)无论组件是否在页面上,始终调用该函数: $(‘.componentX’).doYourThing() 这很简单,因为我们可以只有一个通用的jQuery函数调用块。 但是,由于搜索DOM寻找可能不存在的东西,因此会有轻微的性能损失。 2)将调用附加到组件本身: my component $(‘.componentX’).doYourThing() 这很好,因为它包含同一组件中的标记和.js调用。 缺点? 3)将我们的组件体系结构与后端系统集成,以允许实例化.js块中的组件。 换句话说,它会检查组件是否放在页面temlate上,如果是,则会添加它依赖于主脚本块的js函数调用。 4)我应该考虑的其他选择? 更新: 根据肯普的回答,我想我应该澄清一下。 我们所有的jQuery函数都将被包装成一个大的压缩.js文件,所以在服务器命中方面,它们都是一样的。 我更感兴趣的是如何在单个页面模板的上下文中最好地处理页面上每个组件的所有单个函数调用。 例如,组件X可能在所有页面的90%上使用。 因此,为其他10%的页面调用jquery函数似乎不是什么大问题。 但是,组件Y可能仅在所有页面的5%上使用。 我可能不希望在95%的时间内在每个页面上调用jquery函数,这是不必要的。 进一步的情况可能会使事情进一步复杂化:组件Z可能在所有页面的100%上使用一次,但在5%的页面上使用两次。
我在CakePHP中有一个表单,它有两个实时搜索文本输入。 当用户选择结果时,它们中的每一个都更新隐藏字段的值。 该模型称为Record ,涉及的属性是 budget_id program_id concept_id 我用这种方式使用FormHelper创建了一个表单: … Form->create(‘Record’) ?> Create a record Form->hidden(‘Record.budget_id’, array(‘value’ => $budget[‘Budget’][‘id’])) ?> Form->hidden(‘Record.program_id’) ?> Form->input(‘Record.program_id_search’, array(…)) ?> Form->hidden(‘Record.concept_id’) ?> Form->input(‘Record.concept_id_search’, array(…)) ?> Form->submit(‘Send’) ?> Form->end(); ?> … 如您所见,隐藏了存储模型属性的输入字段。 实时搜索框配置了jQuery的自动完成插件。 按照CakePHP手册的建议,我在beforeFilter方法中禁用了两个额外的字段,以便安全组件忽略它们并且表单通过validation: public function beforeFilter() { $this->Security->disabledFields = array( ‘Record.program_id_search’, ‘Record.concept_id_search’, ); } 每当我从Javascript更改隐藏输入的值时,CakePHP似乎都会生气,它会将我发送到blackhole方法。 根据文档,这没关系。 但令我惊讶的是,安全组件一直忽略我的disabledFields设置。 我一直在搜索几个网络资源,每个人都指向disabledFields选项。 但它对我不起作用。 有什么建议? 谢谢!! […]
我有一个可观察的数组。 对于每个数组元素,我生成一些非常扩展的html表单,因为可观察数组项是依次具有可观察对象的大对象: var records = ko.observableArray([ { p1: ko.observable(“initProp1”), p2: ko.observable(“initProp2”), // and so on pN: ko.observable(“initPropN”) }, //… ]); html可以是大型的,复杂的和动态的,在一些属性本身的基础上改变:为了实现这一点,我使用了ko:if bindings,已知在计算上是昂贵的( http://www.knockmeout。 net / 2012/03 / knockoutjs-performance-gotcha-1ifwith.html ),特别是对于有条件渲染的大型HTML。 性能开始受到影响,特别是在IE上。 注意到重复的,即使是动态的结构,我正在考虑直接在html中使用模板或组件intead绑定数据。 我会为每个动态配置使用不同的模板/组件。 一般来说,使用组件或模板可以提供性能增益,或者内部Ko可以完全按照我不使用的方式进行操作吗? 渲染模板和组件之间的性能有何不同? 否则,我正在考虑通过JQuery每条记录生成HTML,然后使用ko.applyBindingsToNode()动态绑定observables – 这可以提供性能提升吗? 我做了一些(减少的)测试,但我需要对问题进行一些跨浏览器的通用评估。 测试似乎不一致取决于我使用的浏览器甚至是我的数据集,并且无论如何都没有正确反映我的复杂性。 直接在应用程序上进行测试意味着太多的工作,可能是无用的,这是我买不起的,所以一般的指导方针对于至少提供一个用于实际实现和测试的解决方案的提示是很宝贵的。
我已经尝试了所有生命周期钩子但无法完成所需的结果。 我需要的结果是在加载这些元素(组件)中的每一个之后触发一个函数,该函数初始化用于单个页面上的不同元素的许多jquery插件。 所以我们说你有这种结构。 主页滑块小部件产品旋转器..等等 这些元素中的每一个都有自己的组件,并且都是主页父组件的子组件。 我需要的是知道所有子组件和父组件何时被加载,所以我触发一个jquery函数来初始化页面上的每个插件。