나는 독특한 messageID
, from
, to
, subject
, message
, time
및 isRead
와 함께, 내 PHP/MySQL의 사이트 중 하나에 간단하고 일반적인 내부 메시징 서비스가있다.사용자가 새 메일을 받았는지 확인하는 가장 효율적인 방법은 무엇입니까?
일반적으로 사용자가 새 메일을 받았는지 확인하는 가장 좋은 방법은 무엇입니까?
누군가가 메시지를 보내면 1로 전환 된 기본 사용자 테이블에 간단한 바이너리 트리거를 저장해야하며 사용자가 모든 페이지로드에서 해당 1을 확인하도록하고 새 메일 (받은 편지함에 갈 때마다 0으로 설정)? 하지만 스팸 일 경우 사용자가 그것을 읽기 전에 삭제할 수 있습니까?
사용자가 마지막으로 읽은 메시지의 messageid
을 저장하고 최신 메시지를 확인한 다음 마지막으로 읽은 메시지보다 최신인지 확인하고 경고 메시지가 표시되면 알려야합니까? 그런데 어떻게 정보를 저장해야합니까?
모든 pageload에서 새 메시지를 확인해야한다는 점을 감안할 때 더욱 효율적인 방법이 있습니까?
사용자가받은 편지함으로 이동하면 실제로 읽었는지 여부에 관계없이 사용자가받은 편지함에있는 모든 메시지에 대해 "새 메일"을 더 이상 표시하지 않아야합니다 그들 또는 아닙니다.
감사합니다.
편집 : 일부 사용자는 쿠키 또는 자바 스크립트가없는 매우 기본적인 휴대 전화에서 내 사이트에 액세스하므로 마음에 두십시오.
메시지 개체에 쿼리 할 수있는 "새로 만들기"또는 "읽기"와 같은 상태에 대한 상태 필드가 없습니까? hotmail/gmail이나 좋아하는 것을 읽었을 때 읽은 메일을 읽지 않은 메일로 다시 바꿀 수 있다면, 나는 그것도 일종의 상태 필드를 사용하고 있다고 가정하고 있습니다. – Nope
@Francois : 저는 OP에서'mentRead '필드를 가지고 있지만, 특정 메시지가 실제로 읽혔는지 아닌지입니다. "새 메시지"알림은 사용자가받은 편지함을 마지막으로 확인한 이후 새 메시지가있을 때 사용자에게 경고해야하기 때문에 약간 다릅니다. 말이 돼? – ProgrammerGirl
websocket을 사용하는 것이 어떻습니까?서버에서 비동기 방식으로 브라우저에 메시지를 보낼 수 있다면 브라우저는 해당 정보가 필요한 모든 것을 수행 할 수 있습니다. – marcelog