我正在重新组织我的ColdFusion目录结构,并对有经验的CF开发人员如何组织较小的cffunction库感到好奇.
我并不像精心设计的组件(对象)一样好奇,因为我是关于我们随着时间的推移建立的许多小实用功能.
由于我不喜欢详细的语法,所以我只是将包含一堆常见cffunction的lib.cfm包含在内.我可以将它们重构为cfcs,我可以创建对象,以便在变量范围上有更好的隔离.
有一个更好的方法吗?
对于主要的浏览器实现,您可以在XMLHttpRequest的send方法中使用的字符串数据的长度是否有文档记录?
当数据超过3k时,我遇到了一个JavaScript XMLHttpRequest Post在FireFox 3中失败的问题.我假设Post的行为与传统的Form Post相同.
W3C文档提到send方法的数据参数是DOMString,但我不确定主要的浏览器是如何实现的.
这是我的JavaScript的简化版本,如果bigText超过3k就失败了,否则它可以工作......
var xhReq = createXMLHttpRequest();
function createXMLHttpRequest() {
try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) {}
try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {}
try { return new XMLHttpRequest(); } catch(e) {}
alert("XMLHttpRequest not supported");
return null;
}
function mySubmit(id, bigText) {
var url = "SubmitPost.cfm";
var params = "id=" + id + "&bigtext=" + encodeURI(bigText);
xhReq.open("POST", url, true);
//Send the header information along with the request
xhReq.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhReq.setRequestHeader("Content-length", params.length); …Run Code Online (Sandbox Code Playgroud) 我试图让John Resig的jQuery Live Search与Quicksilver Style一起使用选择多表单控件.他的代码基于 John Nunemaker的工作开发他的quicksilver.js代码.
我遇到的问题是,在选择框中只有Firefox支持.hide()选项值,我无法找到适合IE,Safari,Opera和Chrome的方法.
这是一个例子,我已经列出了John R的代码,但你需要抓住quicksilver.js并自己在本地托管它.同样,这在Firefox中很有用,但对rows.hide()的调用在其他浏览器上没有任何作用.
我已经尝试将标签包装在div中并隐藏但没有运气.
有任何想法吗?
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>LiveSearch</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.js"></script>
<script type="text/javascript" src="../jquery/quicksilver.js"></script>
<script type="text/javascript" charset="utf-8">
$(document).ready(function() {
$('#q').liveUpdate('#posts').focus();
});
jQuery.fn.liveUpdate = function(list){
list = jQuery(list);
if ( list.length ) {
// Changed 'li' to 'option' below
var rows = list.children('option'),
cache = rows.map(function(){
return this.innerHTML.toLowerCase();
});
this
.keyup(filter).keyup()
.parents('form').submit(function(){
return false;
});
} …Run Code Online (Sandbox Code Playgroud)