我读过推送订阅可能会在浏览器和推送服务之间失去同步。
我见过两种补救方法,看起来都是非标准的:
我认为任何应用程序都应该处理这两个点,在这些点上可以识别订阅不同步(以及任何/所有)。
问题:
答案 0 :(得分:4)
pushsubscriptionchange
事件被记录为Push API specification的一部分。这应被视为具有权威性,它提到onpushsubscriptionchange
ServiceWorkerGlobalScope
是pushsubscriptionchange
的一部分。
在撰写本文时,我不知道是否在支持Push API的所有浏览器中都触发了void gCRSF_gibbs(double *z, double **n_k, double *SampleDex,
double *r, double *a, double *p,
int *Ksize, int *WordNum) {
int i, j, k;
double mass;
double *prob_cumsum;
double cum_sum, probrnd;
prob_cumsum = (double *) calloc(Ksize[0],sizeof(double));
mass = r[0]*pow(p[0],-a[0]);
for (i=0;i<WordNum[0];i++){
j = (int) SampleDex[i] -1;
k = (int) z[j] -1;
if(z[j]>0){
(*n_k)[k]--;
}
for (cum_sum=0, k=0; k<Ksize[0]; k++) {
cum_sum += (*n_k)[k]-a[0];
prob_cumsum[k] = cum_sum;
}
if ( ((double) rand() / RAND_MAX * (cum_sum + mass) < cum_sum)){
probrnd = (double)rand()/(double)RAND_MAX*cum_sum;
k = BinarySearch(probrnd, prob_cumsum, Ksize[0]);
}
else{
for (k=0; k<Ksize[0]; k++){
if ((int) (*n_k)[k]==0){
break;
}
}
if (k==Ksize[0]){
Ksize[0]++;
realloc(*n_k,sizeof(**n_k)*Ksize[0]);
(*n_k)[Ksize[0]-1]=0;
prob_cumsum = realloc(prob_cumsum,sizeof(*prob_cumsum)*Ksize[0]);
}
}
z[j] = k+1;
(*n_k)[k]++;
}
free(prob_cumsum);}
事件,但我相信一般的想法是它是用户的(最终)解决方案描述