gpt4 book ai didi

javascript - 添加用户名而无需硬编码,chatbuilder 应用程序

转载 作者:行者123 更新时间:2023-12-03 11:48:55 24 4
gpt4 key购买 nike

首先,我是一个公开的新手(对于这个网站和编码),所以如果这个问题的答案过于简单,我提前道歉,但是我迫切需要一些帮助。

我开发了“chatbuilder”,作为开发训练营面试过程的一部分。不幸的是,我在 chatSend 函数中硬编码了我的用户名,其中包括 ajax 调用。我想使用用户名的提示输入,因为假设这个聊天应该能够拥有许多用户,而不仅仅是我和机器人聊天者。我花了太多的时间试图找出正确的方法来做到这一点,值得数小时的尝试和错误,而我意识到修复可能需要大约 45 秒。我正在发布我的完整代码,如果有人可以向我展示如何正确实现这一点,我将不胜感激。谢谢!

  <!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="http://chatbuilder.hackreactor.com/ChatBuilder.js"> </script>
</head>
<body>
<script>

Chat.guide.start();



delete Chat.display;
delete Chat.fetch;
delete Chat.send;


function chatDisplay(str){
$(".messages").append( "<li>" + str + "</li>");
};

function chatFetch(fun){
var obj = {};
var result = [];
$.ajax({
type : "GET",
url : "https://api.parse.com/1/classes/chats?order=-createdAt",
dataType: "json",
contentType : "application/json; charset=utf-8",
async : false,
complete : function(data)
{
obj = JSON.parse(data.responseText);
}
});

for (var i = 0; i < obj.results.length; i++) {
result.push(obj.results[i]);
};
result.sort(function(a,b){
a = new Date(a.createdAt);
b = new Date(b.createdAt);
return a<b ? -1 : a>b ? 1 : 0;
});
for (var i = 0; i < result.length; i++){
result[i] = result[i].text;
}
fun(result);
};


function chatSend(str){
var user = document.URL.slice(document.URL.lastIndexOf('=') + 1);
var userpost = $.ajax({
type : "POST",
url : "https://api.parse.com/1/classes/chats",
data: JSON.stringify({text: 'Daniel: ' + str,}),
dataType: "json",
contentType : "application/json; charset=utf-8",
async : false,
});
return userpost;
};


function chatRefresh(){
$(".messages").empty();
function chatTether(arr){
for(var i = 0; i < arr.length; i++){
chatDisplay(arr[i]);
}
};
chatFetch(chatTether);
};
setInterval(chatRefresh,3000);


$(document).ready(function(){
$(".send").on("click", function(){
chatSend($(".draft").val())
$(".draft").val('');
});
});

</script>

<div class="container">
<h2>Fixed Chat</h2>

<input class="draft" type="text"/> <button class="send">send</button>

<ul class="messages">
</ul>
</div>
</body>
</html>

最佳答案

所以,如果我确实以正确的方式引导你:首先你像这样做

var promptName = prompt('Enter your name', 'Some name just in case))');

然后你只需将其添加到你的 ajax 函数中:

 function chatSend(str){
var user = document.URL.slice(document.URL.lastIndexOf('=') + 1);
var str = promptName + someElseStringYouWant;
var userpost = $.ajax({
type : "POST",
url : "https://api.parse.com/1/classes/chats",
data: JSON.stringify({text: str,}),
dataType: "json",
contentType : "application/json; charset=utf-8",
async : false,
});
return userpost;
};

顺便说一句:在全局范围内声明 promptName 变量,以便您的发送消息函数可以看到它。UPD:好的,忘记提示的东西,我之前说过,因为它内置在你的库中,而且我发现了它的缩小版本,所以我找不到它存储的变量,所以你应该使用 url 尝试之前的方法

 function chatSend(str){
var url = $(location).attr('href');
var user = url.substr(url.lastIndexOf('=')+1);
var fullString = user + ': ' + str;
var userpost = $.ajax({
type : "POST",
url : "https://api.parse.com/1/classes/chats",
data: JSON.stringify({text: fullString,}),
dataType: "json",
contentType : "application/json; charset=utf-8",
async : false,
});
return userpost;
};

因此,您从网址中获取子字符串就完成了。

附注即使您不能投票,您也可以接受答案;)

关于javascript - 添加用户名而无需硬编码,chatbuilder 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25923828/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com