i working on a code to getting data from database for object position (sprite image ) and ajax should updating the position for object every 2 seconds and set pieces on the right position like the position on database but that's happend some time and sometime needs to refresh the page many times to get that so where's the problem I'm using node.js and javascript and html and jquery and json encode I don't get any error because any of them but I get the write position when I use console.log to check it in the client side or in server so are the error on the html or what ?
<!DOCTYPE html>
<html>
<link rel="stylesheet" href="http://localhost:5000/cssFiles/styles.css">
<title>JSChess</title>
<link href="http://localhost:5000/cssFiles/styles.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" type="text/css" href="http://localhost:5000/cssFiles/styles.css" />
<body>
<h2>Welcome <span style="color:green"><h1>your nam</h1>! </span>You are playing against <span style="color:red"><h1>your nam</h1>! </span>
</h2>
<div id="FenInDiv" style="display:none;">
<input type="text" id="fenIn"/>
<button type="button" id="SetFen">Set Position</button>
</div>
<div id="ThinkingImageDiv">
</div>
<div id="Board">
</div>
<div id="CurrentFenDiv" >
<span id="currentFenSpan" style="display:none;"></span>
</div>
<div id="ChatMessages">
</div>
<div id="AvailablePlayers"></div>
<div id="ChatMessages"></div>
<div id="ChatBig">
<span style="color:green">Chat</span><br/>
<textarea id="ChatText" name="ChatText"></textarea>
</div>
<button type="button" id="NewGameButton">New Game</button><br/>
<span id="GameStatus"></span>
<!--This div not outputted but needed to work -->
<div id="EngineOutput"><br/>
<select id="ThinkTimeChoice" style="display:none;">
<option value="1">1s</option>
<option value="2">2s</option>
<option value="4">4s</option>
<option value="6">6s</option>
<option value="8">8s</option>
<option value="10">10s</option>
</select><br/><br/><br/>
<span id="BestOut" style="display:none;">BestMove:</span><br/>
<span id="DepthOut"style="display:none;">Depth:</span><br/>
<span id="ScoreOut"style="display:none;">Score:</span><br/>
<span id="NodesOut"style="display:none;">Nodes:</span><br/>
<span id="OrderingOut"style="display:none;">Ordering:</span><br/>
<span id="TimeOut"style="display:none;">Time:</span><br/><br/>
<button type="button" id="SearchButton"style="display:none;">Move Now</button><br/>
<button type="button" id="FlipButton"style="display:none;">Flip Board</button><br/><br/>
<button type="button" id="TakeButton"style="display:none;">Take Back</button><br/><br/><br/>
</div>
<script src="js/jquery-3.2.1.min.js"></script>
<script src="js/defs.js"></script>
<script src="js/io.js"></script>
<script src="js/board.js"></script>
<script src="js/movegen.js"></script>
<script src="js/makemove.js"></script>
<script src="js/perft.js"></script>
<script src="js/evaluate.js"></script>
<script src="js/pvtable.js"></script>
<script src="js/search.js"></script>
<script src="js/protocol.js"></script>
<script src="js/guiMultiPlayer.js"></script>
<script src="js/main.js"></script>
<script src="js/deleteDB.js"></script>
<script src="/socket.io/socket.io.js"></script>
</body>
</html>
the javascript ajax part
function loadLMove(){
$.ajax({
type:'POST',
url:'/dispalymove',
data:{MoveString:MoveString},
dataType:'json',
cache: false,
//timeout: 20000,
success:function(data){
if (data.msg != ""){
if (MoveString!=data.msg){
var now = new Date().getTime();
//alert(data.msg);
ParseFen(data.msg);
++timesRun;
console.log('Move displayed: ' + data.msg + 'Action ' + timesRun + ' started ' + (now - startTime) + 'ms after script start');
//PrintBoard();
SetInitialBoardPieces();
GameController.PlayerSide = brd_side;
CheckAndSet();
EvalPosition();
//PerftTest(5);
//newGameAjax();
MoveString=data.msg;
}
} else{
if (MoveString!=data.msg){
ParseFen("rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1");
//PrintBoard();
SetInitialBoardPieces();
GameController.PlayerSide = brd_side;
CheckAndSet();
EvalPosition();
//PerftTest(5);
//newGameAjax();
}
}
}
});
}
//---------------------------------------------------------
loadLMove();
setInterval(loadLMove,2000);
my node.js code
app.post('/dispalymove', function (req, res, next) {
var lMove="";
if(req.body.MoveString !== null){
Move.setMoveUserId(req.user.id);
Move.setMoveString(req.body.MoveString);
a.getLastMove(req.user.GameId,function(move){
console.log("Return from display req.body:",req.body.MoveString);
console.log("Return from display themove:",move);
res.json({"msg": move, "loggedin": "true"});
});
} else {
var output = {"msg": lMove, "loggedin": "true"}; // <=== here always equals ""
res.json(output);
}
});
getlastmove function code
getLastMove(id,callback){
var MoveRequest = "SELECT * FROM users ORDER BY id";
var query = connection.query(MoveRequest, function(err,rows, result) {
if (rows.length == 0) {
return "rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1";
}
if (rows.length > 0) {
for (var i in rows) {
var move = rows[i].MoveString;
if (rows[i].GameId == id){
callback(move);
return;
}
}
}
});
}
via dark night
No comments:
Post a Comment