在php中使用ajax发送多个请求

时间:2013-02-10 14:13:58

标签: php ajax

我正在尝试使用php脚本将推送通知发送到Android设备。如果我每次将它发送到一个设备,这可以正常工作,但我有超过1000个设备,并希望一次性发送给所有设备。我尝试使用循环,但它无法正常工作。

<script type="text/javascript"> 
            $(document).ready(function(){ 

            }); 

            function sendToAll(totalUsers){

                for(var i=0;i<totalUsers;i++)
                {
                    sendPushNotification(i);
                }

            }
            function sendPushNotification(id){ 
                var data = $('form#1').serialize(); 
                $('form#1').unbind('submit'); 
                $.ajax({ 
                    url: "send_message.php", 
                    type: 'GET', 
                    data: data, 
                    beforeSend: function() { 

                    }, 
                    success: function(data, textStatus, xhr) { 
                          $('.txt_message').val("");
                          $('.txt_excerpt').val("");    
                    }, 
                    error: function(xhr, textStatus, errorThrown) { 

                    } 
                }); 
                return false; 
            } 
        </script> 

这是我的HTML表单。 $ no_of_users变量包含select查询中提取的总行数,即表中的用户总数。

<form id="1" name="" method="post" onsubmit="return sendToAll('<?php echo $no_of_users; ?>')"> 
                                <label>Send Message to All the Users</label> 
                                <div class="clear"></div> 
                                <div class="send_container"> 
                                    <textarea rows="3" name="excerpt" cols="10" class="txt_excerpt" placeholder="Type excerpt here"></textarea>
                                    <textarea rows="3" name="message" cols="25" class="txt_message" placeholder="Type message here"></textarea> 

                                    <input type="submit" class="send_btn" value="Send" onclick=""/> 

2 个答案:

答案 0 :(得分:0)

您应该使用异步请求来“同时”完成所有操作,在您的ajax调用上使用此指令:

async: true,

答案 1 :(得分:0)

你想把一些信息推到约。来自服务器的1000台设备并且您希望使用您在问题中提供的表单和脚本来启动它。但您还必须考虑服务器与设备通信的方式。服务器必须有某种方式才能到达客户端。

一种方法 - 例如,指示客户端每隔N秒轮询服务器以获取新消息。这会产生不必要的流量并加载服务器。

第二种方式 - 在客户端上使用websocket并为此提供服务器端支持。它可能不是那么微不足道,因为它似乎是

还有一种方法 - 使用长轮询。

无论如何 - 必须以某种方式指示设备如何从服务器接收推送消息。