1.该网站只有一个网页。
2.该页面内仅有一个背景色为白色的正方形区域,大小为50×50像素。
3.这也是最变态的:对于这2500个像素块(50×50=2500),鼠标在该区域内的每次点击,只能选中某唯一的一个像素块,且能够打开一个调色板,为该选中的像素块更换颜色?
4.如上操作,能否同时支持更多的用户,如上万人?
5.该区域像素的动态变化如何立即反应到不同用户的浏览器内的本页面?
6.可以不用安装ACTIVE插件而由服务器完成吗?需要多少台这样的服务器?

解决方案 »

  1.   

    1-3 是普通的网页编程,点击事件中处理一下坐标弹出颜色选择框就是了,jQuery有很多颜色选择插件(colorpicker),唯一麻烦一些的就是绘图,HTML5可以直接支持Canvas简单点,其他要用JS模拟,不过绘图插件也不少。
    4 跟网页就没关系了,什么叫支持上万人,如果说同时指的是并发连接数,那就是同时上万个连接,网站规模相当大了,需要复杂的架构和很多服务器,但其实一般不可能有这样的同时,所以普通网站都可以支持。
    5 动态变化那就是通过ajax之类技术向服务器发送数据去更新数据,客户端通过ajax之类去刷新,但是这里“立即反应”又需要澄清一下,这个立即只能是追求到人的反应时间级别,刷新间隔、网络传输都有时间延迟,就看是否能接受;用服务器推(Server Push或者Comet)技术可以缩短反应时间,但是技术稍微复杂些,服务器负担也增加很多。
    6 上面已经都说了。
      

  2.   

    楼主想多了,就一个调色板就能搞定一切。每次点击一个色块,弹出的都是同一个调色板。所以跟你页面有多少个像素块没有半毛钱的关系。这些点击更换像素块颜色的东东是跑在客户端的,跟服务器没有半毛钱的关系。唯一跟服务器有关系的就是请求该页面的时候需要连接服务器进行数据download.如果不是上万的并发(每秒钟有上W个请求)的话,一台server足以。
      

  3.   

    挺容易的,你想象得复杂而已
    做一个调色板,然后按照点击元素的坐标控制显示位置,选择完后改变该元素背景色,这当然是立即起作用且只对用户自身起作用了,因为是客户端本地行为,与服务器无关
    然后做一个确定按钮,获取用户的所有更改提交到服务端保存起来就行了
    逻辑非常简单,唯一就是2500个标签可能会造成浏览器有一点慢,
    不需要active,但不是在服务器完成,主要用客户端控制,服务器只保存用户确认的结果就行了