我正在编写一个聊天应用程序,并希望在第一个聊天调用中获取所有后续 AJAX 调用的设置。
我设置了默认的 jQuery AJAX 设置:
jQ.ajaxSetup({
url : 'chat.php',
contentType: 'application/json'
dataType : 'json',
type : 'post'
});
然后我通过操作返回一个 JSON 对象,其中包含连接到特定聊天的数据。
jQ.ajax({
data: {
'action' : 'connect'
},
success: function (data) {
if (data.success) {
// set user ID and chat ID for all subsequent ajax calls
if (data.partner) {
// start fetching data to listen for messages
} else {
// keep checking for partner
}
} else {
// chat connect failed
}
}
});
如果创建了聊天并且用户连接到聊天伙伴,每 0.2 秒我从服务器获取数据,如下所示:
setTimeout(fetchData, 200);
function fetchData(){
jQ.ajax({
data: {
'action' : 'fetch'
},
success: function (data) {
if (data.success) {
// update messages
}
setTimeout(fetchData, 200);
});
}
我也有 AJAX 功能来发布数据和断开聊天,基本上它们都需要具有与初始“连接”操作设置的相同的聊天凭据。
实现这一目标的最佳方法是什么?