Jquery 更快的Javascript文本替换

Jquery 更快的Javascript文本替换,jquery,Jquery,给定以下javascript(jquery) 这段代码基本上读取一个文本框(用户名),当它被输入时,它将重建显示在另一个文本框(标识符)中的url 这很好-它的功能没有问题。然而,它感觉“缓慢”和“迟缓”。是否有更干净/更快的方法来完成此任务 这是所要求的HTML <fieldset class="identifier delta"> <form action="/authenticate/openid" method="post" target="_top" >

给定以下javascript(jquery)

这段代码基本上读取一个文本框(用户名),当它被输入时,它将重建显示在另一个文本框(标识符)中的url

这很好-它的功能没有问题。然而,它感觉“缓慢”和“迟缓”。是否有更干净/更快的方法来完成此任务

这是所要求的HTML

<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) );
})