如何用PHP实现会话同步?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- weixin_33721344 2011-04-22 13:15关注
You could use
jQuery.ajax()
and set the optionasync
to false:async Default: true By default, all requests are sent asynchronously (i.e. this is set to true by default). If you need synchronous requests, set this option to false. Cross-domain requests and dataType: "jsonp" requests do not support synchronous operation. Note that synchronous requests may temporarily lock the browser, disabling any actions while the request is active
You could use it like this:
$.ajax({ type: "POST", url: "file.php", async: false, data: data, success: function(return){ alert("Success: "+return); } });
If you want to add a loader just apply it as:
startLoader(); $.ajax({ type: "POST", url: "file.php", async: false, data: data, success: function(return){ alert("Success: "+return); } }); endLoader();
However you PHP idea is simply not a good one. Opening a session and do all the process for this kind of thing is just useless and slow your script down. You should be asking yourself: Do I really need to block this?
If the answer is yes then do this: Create a table called
processes
in you database. Inside that table create 2 fields: One will be the process identifier:process_id
; the second will be the process status:process_status
. The first is an integer you will define with sha1(IMAGE). The second will be an integer:1
for "busy",0
for "free".Then you could do something like this:
SELECT process_status FROM vps_processes WHERE process_id = sha1(CURRENT_IMAGE);
And check whatever it is
1
or0
. If it is1
then block the script; If it is0
then you query:UPDATE vps_processes SET process_status = 1 WHERE process_id = sha1(CURRENT_IMAGE);
then run what you have to run and at the end of the script query:
UPDATE vps_processes SET process_status = 0 WHERE process_id = sha1(CURRENT_IMAGE);
解决 无用评论 打赏 举报