Jquery 更快的Javascript文本替换
给定以下javascript(jquery) 这段代码基本上读取一个文本框(用户名),当它被输入时,它将重建显示在另一个文本框(标识符)中的url 这很好-它的功能没有问题。然而,它感觉“缓慢”和“迟缓”。是否有更干净/更快的方法来完成此任务 这是所要求的HTMLJquery 更快的Javascript文本替换,jquery,Jquery,给定以下javascript(jquery) 这段代码基本上读取一个文本框(用户名),当它被输入时,它将重建显示在另一个文本框(标识符)中的url 这很好-它的功能没有问题。然而,它感觉“缓慢”和“迟缓”。是否有更干净/更快的方法来完成此任务 这是所要求的HTML <fieldset class="identifier delta"> <form action="/authenticate/openid" method="post" target="_top" >
<fieldset class="identifier delta">
<form action="/authenticate/openid" method="post" target="_top" >
<input type="text" class="openid" id="identifier" name="identifier" readonly="readonly" />
<input type='text' id='username' name='username' class="left" style='display: none;'/>
<input type="submit" value="Login" style="height: 32px; padding-top: 1px; margin-right: 0px;" class="login right" />
</form>
</fieldset>
标识符文本框只是根据按钮的超链接锚点设置了一个值 如果我看不到任何可能的优化,除了从一个更少的地方保存之外
var url = selected.protocol + (selected.prepend == true ? selected.username + '/' + selected.url : selected.url + '/' + selected.username);
缓存jquery对象
var username = $('#username'),
identifier = $('#identifier');
username.keyup(function () {
selected.username = username.val();
var url = selected.protocol +
(selected.prepend == true ? selected.username : selected.url) + "/" +
(selected.prepend == true ? selected.url : selected.username);
identifier.val(url);
});
您当前在每个按键笔划上搜索dom两次。是的,正如其他人所示。。。我能看到的唯一优化是将对象移动到函数之外:
var url = selected.protocol;
var iden = $("#identifier");
$("#username").keyup(function() {
selected.username = $(this).val();
iden.val( url + (selected.prepend == true ? selected.username + '/' + selected.url : selected.url + '/' + selected.username) );
})
你能分享你的HTML吗。另外,选择了什么
,
以及如何定义?
var url = selected.protocol;
var iden = $("#identifier");
$("#username").keyup(function() {
selected.username = $(this).val();
iden.val( url + (selected.prepend == true ? selected.username + '/' + selected.url : selected.url + '/' + selected.username) );
})