使用ajax

时间:2017-03-05 16:01:53

标签: php jquery mysql ajax codeigniter

目前正致力于一个用于后台的CRM项目,用户可以在其中创建新客户端并定义某些事件,如后续控制,SLA控制等。

这个想法是在网页上发布通知,但仅针对新事件,例如,我会在14:00触发事件,在14:15触发另一个事件,但是每个事件只发射一次。

实现这一目标的最佳方法是什么?我应该考虑哪个时间间隔以避免在mysql数据库中挣扎?

1 个答案:

答案 0 :(得分:0)

正如你提到的ajax我假设你指的是类似于浏览器上的小弹出窗口。

如果是这样,你需要使用javascript来进行调用。我已经读过人们正在使用网络套接字进行实时更新,但由于我不熟悉,所以我会留下专家来指导您。

另外,为了使弹出很好,你将不得不使用像pnotify这样的东西。

您需要遵循的步骤。

  1. 让您的javascript每5分钟左右查询一次服务器。我每5分钟提一次的原因是计数器在页面加载时被重置。因此,如果页面/脚本在10分钟内加载,则下一次调用将从该加载开始15分钟。因此,您需要确定间隔值。

     <script>
        function getnewrecords(){
           $.ajax({ //notice I have used jquery to do the ajax calling.
                    url: "http://yourapiurl.org/api/function",
                    type: 'GET',
                    success: function(res) { //res is the ajax result
                    console.log(res); //console output
                    //call javascript notified plugins function to display popup here
                    }
            });
        }
    
        setInterval ( getnewrecords, 900000); //time mentioned in miliseconds. 1 second = 1000 ms. Therefore 60,000 * 15 = 900,000
    
    </script>
    
  2. 在CI控制器中调用模型并获取db结果。时间问题也出现在这里。所以你可能不得不考虑逻辑。例如存储最后一次在会话中调用此函数墙并在此时间之后插入记录。 做模型调用并回显你需要的输出。 javascript将只显示此处的输出。因此,您可能必须考虑输出格式,例如是否需要是json对象等。相应地替换您的javascript代码。

  3. 需要注意的是调用javascript函数的时间间隔,以及存储/识别上次在CI中调用函数的方法。

    此外,如果您需要点击类似电子邮件的内容,则需要使用cronjob来调用您的CI网址。

    0 20 * * * wget yourCIurl/controller/function
    

    cron会将此视为调用常规http网址。

    祝你好运