php - 与 MySQL 的连接速度更快?

标签 php javascript jquery html mysql

我有以下问题。 我正在开发一款基于浏览器的小型游戏,并使用键盘键添加了移动。 它正在工作,但现在我想添加一个代码,它将玩家的当前位置发送到 MySQL 数据库。 问题是,当我按下按钮时,例如 W,我的 Angular 色一直向上移动,他每走一步都会向 MySQL 发送一个数据,从而创建一个长长的 PHP 请求列表。 我怎样才能加快这个过程? 这是我使用的部分代码:

if (key == key_W) { // Player Up
if (parseFloat(wzr.style.top)-6 < 0)
{
 $('#wzro').stop().animate({
 top: 342
 }, 0, function() {
 $('#wzro').empty();
 });
YWalk();
}

else
{
 $('#wzro').stop().animate({
 top: '-=6'
 }, 0, function() {
 $('#wzro').empty();
 });
YWalk();
}
}

function YWalk(){
            var wzr = document.getElementById("wzro");
            var xmlHttp;
            if (window.XMLHttpRequest){
            xmlHttp=new XMLHttpRequest();
            }
            else{
            xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
            }
            xmlHttp.open("GET","datachodzeniey.php?y="+ wzr.style.top);
            xmlHttp.send(null);
}

在 datachodzeniey.php 中:

<?php
session_start();
$username = $_SESSION['username'];
$y=$_GET['y'];

$connect = mysql_connect("localhost", "root", "");
$select_db = mysql_select_db("testdb", $connect);
$q=mysql_query("update players set y='$y' where dispname='$username'");
?>

最佳答案

首先,这是您的代码的简洁版本,没有任何功能更改:

//in some outer scope
var $wzro = $("#wzro");

//in the key event handler
if (key == key_W) { //Player Up
    var top = parseInt($wzro.css('top')) - 6;
    top = (top < 0) ? 342 : top;
    $wzro.empty().css('top', top);
    $.ajax({ url: "datachodzeniey.php?y=" + top });
}

现在,减少 ajax 调用的次数:

//in some outer scope
var $wzro = $("#wzro");
var u = {//u for upload
    url: "datachodzeniey.php?y=",
    allow: true,
    reallow: function(){ u.allow = true; },
    delay: 100//(milliseconds) adjust as necessary
};

//in the key event handler
if (key == key_W) { //Player Up
    var top = parseInt($wzro.css('top')) - 6;
    top = (top < 0) ? 342 : top;
    $wzro.empty().css('top', top);
    if(u.allow) {
        $.ajax({ url: u.url + top });
        u.allow = false;
        setTimeout(u.reallow, u.delay);
    }
}

@JaspalSingh 的memcache 思路听起来不错,可以独立于上面的代码实现。

关于php - 与 MySQL 的连接速度更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14538012/

相关文章:

php - 连接两个表并遍历数据

javascript - 如何创建悬停指令

javascript - 我想要跨度和类的正确 xpath

javascript - 在函数 showdialog() 上添加打字效果

jquery - 如何使用更少的代码使用填充/边距值计算元素的宽度和高度?

javascript - 如何将 Node.js 变量传递到 Pug 脚本标记的内部?

javascript - 未捕获的类型错误 : undefined is not a function javascript function

php - Mysql sql 行到列

PHP session 变量在不应该存在的时候存在,在应该存在的时候不存在

php - WhereIn Eloquent 形式